我想知道以下代码的工作原理。
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
return !([newString length] > 10);
}
“stringByReplacingCharactersInRange”有什么作用?以上方法如何限制可以在textField中输入的字符数?
提前致谢!
答案 0 :(得分:11)
textField:shouldChangeCharactersInRange:replacementString:
是UITextFieldDelegate方法,只要文本字段的内容即将更改(在文本字段中输入,删除,剪切或粘贴文本),就会调用该方法,询问代表是否要允许这种变化。
stringByReplacingCharactersInRange:withString:
是一个NSString实例方法,完全按照它的说法,用当前字符串中的一些文本替换另一个字符串,创建一个新字符串。
您检查的代码是否会导致此更改的字符串超过10个字符,如果是,则委托将返回NO
,文本字段内容不会更改。如果结果字符串不超过10个字符,则委托将返回YES
,文本字段的内容将更改为您在newString
中获得的相同字符串。