要限制一个UITextField的输入字数,很多人首先想到的是通过UITextFieldDelegate下面这个代理方法实现:
此列的缺点:
此列的缺点:
此时希望有类似-(void)textFieldDidChange:(UITextFieldxianz
*)textField的代理方法,但可惜没有。不过天无绝人之路,UITextField有UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification这个消息通知(切记,监听消息还要记得解除监听),UITextField本身提供了相应的事件监听:
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
这样就可以更好地限制输入长度:
此列的缺点:
1、对于纯字符的统计没有什么问题,但是,当使用拼音输入法时,该方法中的最后一个参数string接受的是输入的字母,而不是选择的汉字,造成的结果是,当想输入文字“我在编程”,输入拼音“wozaibiancheng”,每输入一个字母便会进入方法,统计的字符长度是字母的长度,实际上 xianz汉字还未超过限制长度,但是字母的长度超过了导致无法继续输入。
解决办法如下: