2016-08-05 22 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