1
最大字符長度目前我使用這種方法的UITextField - 通過表情符號在
(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
if(newLength <= 25) {
self.charsLeft.text = [NSString stringWithFormat:@"%d", 25 - newLength];
}
return (newLength > 25) ? NO : YES;
}
其中charsLeft
是標籤顯示在用戶界面。
問題出來了emoji
。如果用戶輸入emoji
符號,然後刪除它,newLength
將等於1.因此,用戶將看到他只剩下24個字符。
我確實知道,表情符號是代理對的,但我不明白爲什麼如果你在
(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
刪除比range.length
將等於1,而不是2
我怎麼能修復用戶界面中的錯誤號碼? 我錯過了什麼?
謝謝。第二個解決方案就是我一直在尋找的。 'UITextFieldDelegate'沒有'didChange'方法,所以第一次修復不適合我。我仍然認爲這個問題是SDK中的bug) – thoughtf00l 2013-05-21 14:16:28