2016-08-05 21 views
0

我的UITextView字符数限制在双倍,三倍或四倍计数表情符号的位置。我希望表情符号可以算作1个字符,就像他们在Twitter iOS应用中所做的一样。下面是我在我的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' vars? (第一行) –

回答

0

我不认为这会是一个简单的解决方案...您将不得不检查unicode值,看看每个字符是否是表情符号。您必须对这些案例进行硬编码,然后每次发布新emojis时都必须更新它们。我的建议是,你应该忘记表情符号花费更多的角色......如果你想了解更多信息,有一个github回购,可以很容易地检查emojis ..但是,然后它可能会变得过时(如果不是已经过时)。

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

+0

我真的看到,Twitter的应用程序也有皮肤颜色和东西的问题。没关系,我会保持现状。谢谢 – cb428

+0

不知道它与问题有多大关系,但是这一个:https://github.com/ericdke/WithOrWithoutEmoji没有过时(免责声明:它是我的)。 – Moritz