【发布时间】:2023-03-15 21:00:07
【问题描述】:
如何查看我的UITextField 中的文字?我希望我的UITextField 仅包含数字字符、破折号、+ 符号、空格等,但 NO 字母。
那么如何检查我的UITextField.text 是否不包含字母?
提前致谢!
【问题讨论】:
标签: ios objective-c cocoa-touch nsstring uitextfield
如何查看我的UITextField 中的文字?我希望我的UITextField 仅包含数字字符、破折号、+ 符号、空格等,但 NO 字母。
那么如何检查我的UITextField.text 是否不包含字母?
提前致谢!
【问题讨论】:
标签: ios objective-c cocoa-touch nsstring uitextfield
我认为这应该可行:
if ([myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]].location != NSNotFound) {
NSLog(@"This string contains letters.");
}
这里记录了所有可用的字符集:NSCharacterSet
【讨论】:
为了增加更多好处并防止错误,如果您使用故事板,请选择您的 UITextField 并打开属性检查器(右侧列,顶部有盾牌图标),在该视图的中点有 5下拉菜单,其中之一称为Keyboard。你有几个控制器,其中一个是Numbers and Punctuation。
这会将您的键盘设置为仅显示数字和所有可用的标点符号。将其与:
//SET LEGAL CHARACTERS
NSCharacterSet* tSet = [NSCharacterSet characterSetWithCharactersInString:
@"abcdef1234567890ABCDEF"];//whatever amount or type of characters you want to use
NSCharacterSet* invSet = [tSet invertedSet];
if (yourString rangeOfCharacterFromSet:invSet].location != NSNotFound){
[[[UIAlertView alloc] initWithTitle:@"Input Error"
message:@"Make sure the value entered is numerical or punctual only."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] show];
}
并且您有一个简单易用的应用程序,可以防止用户意外或故意造成错误。
【讨论】: