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