【发布时间】:2012-04-03 05:41:10
【问题描述】:
有没有办法只让用户通过键盘在 UITextField 中输入字母和数字,而不是符号?
【问题讨论】:
-
Daidai,将您的 UITextField 键盘类型更改为“Name Phone Pad”。它只会显示要输入的字符或数字。
-
@H e m a n g - 感谢它的工作,但用户体验不正常。
标签: iphone objective-c
有没有办法只让用户通过键盘在 UITextField 中输入字母和数字,而不是符号?
【问题讨论】:
标签: iphone objective-c
使用这个委托方法..因为它对我有用..
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField == YOUR TEXT FIELD)
{
NSCharacterSet *invalidCharSet = [[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:invalidCharSet] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}
else
return YES;
}
【讨论】:
- (BOOL) textField: (UITextField *)theTextField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string {
//return yes or no after comparing the characters
}
【讨论】:
试试这个:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *nonNumberSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
if(![string stringByTrimmingCharactersInSet:nonNumberSet].length)
{
return NO;
}
return YES;
}
【讨论】: