我在我的UITextField委托中使用以下代码来限制可以输入的字符:
仅供参考:UITextField出口称为nameChoiceField.另外还有一个名为的标签出口errorMessageLabel.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *potentialNewChosenName = [self.nameChoiceField.text stringByReplacingCharactersInRange:range withString:string];
NSCharacterSet *nonLettersNumbersOrDashes = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890- "] invertedSet];
if ([potentialNewChosenName stringByTrimmingCharactersInSet:nonLettersNumbersOrDashes].length != potentialNewChosenName.length) {
self.errorMessageLabel.text = @"Only letters, numbers etc allowed.";
return NO;
} else {
self.errorMessageLabel.text = @"That's okay.";
return YES;
}
}
Run Code Online (Sandbox Code Playgroud)
哪个工作得很好(只要自动更正关闭,如果你输入其他东西以在你输入2个空格后停止自动完全停止).
然而!当您点击return键盘时,它不允许它(显示错误消息"Only letters ....").
如何限制用户可以输入的内容,并且仍然return可以识别按钮?
此外,是否有任何最佳实践来识别delete上面应该实现的按钮?
| 归档时间: |
|
| 查看次数: |
3720 次 |
| 最近记录: |