“shouldChangeTextInRange”和“stringByReplacingCharactersInRange”方法是如何工作的?
我想知道下面的代码的工作。
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; return !([newString length] > 10); }
“stringByReplacingCharactersInRange”是做什么的? 上面的方法如何限制可以在textField中input的字符数?
提前致谢!
textField:shouldChangeCharactersInRange:replacementString:
是UITextFieldDelegate方法,在任何时候文本字段的内容将被调用(input,删除,剪切或粘贴文本到文本字段),询问委托是否允许这个改变。
stringByReplacingCharactersInRange:withString:
是一个NSString实例方法,它完全按照它所说的将当前string中的一些文本replace为另一个string,从而创build一个新的string。
您所检查的代码是否会由于此更改而导致的string长于10个字符,如果是,委托将返回NO
并且文本字段内容不会更改。 如果得到的string不超过10个字符,委托将返回YES
并且文本字段的内容将更改为您在newString
获取的同一个string。