2016-08-05 13 views
0

私のUITextView文字の制限で、二重、三重、四重極の絵文字がカウントされる場所に問題があります。私はemojiがTwitterのiOSアプリでやっているように、1文字として数えたいと思っています。ここで私は、私は絵文字を占めたときに適切な結果を生成するために変更する必要がありますどのような私のshouldChangeTextInRange方法絵文字でUITextViewの文字数制限が正しくありません

let characters = textView.text.characters.count + (text.characters.count - range.length) 
     if characters <= self.characterLimit { 
      // update character limit label as we type 
      self.characterLimitLabel.text = String(characters) + "/" + String(self.characterLimit) 
      return true 
     } else { 
      return false 
     } 

で持っているコードはありますか?

+0

あなたは今まで、古い携帯電話上の異なる肌の色でそれらの新しい絵文字を見たことがありますか?実際には、標準の肌色の古い絵文字と新しい肌色のカラーパレットの四角形として表示されます。私はそれがなぜ複数の文字としてそれらを数えていると信じている –

+0

ああ、それらの文字カウントを修正することは可能ですか?実際にtextViewの文字数ではなく、キーボードでのユーザーのキーストロークをカウントするのか? – cb428

+0

'text'と' range'変数について説明してください。 (最初の行) –

答えて

0

私はそれが簡単な解決策になるとは思わない...それぞれの文字が絵文字であるかどうかを確認するには、ユニコードの値をチェックする必要があります。これらのケースをハードコードする必要があります。新しいemojisがリリースされるたびにそれらを更新する必要があります。もっと多くの情報が必要な場合は、emojisを簡単に確認できるgithubリポジトリがありますが、もう一度古いものになっている可能性があります。

https://github.com/woxtu/NSString-RemoveEmoji

+0

私は実際にTwitterのアプリも肌の色やものに問題があることを見ました。私はそれをそのまま残すことが大丈夫です。ありがとう – cb428

+0

質問にどれくらいのものが関係しているか分かりませんが、https://github.com/ericdke/WithOrWithoutEmojiは古くはありません(免責事項:私のものです)。 – Moritz

関連する問題