【发布时间】:2014-02-19 05:21:06
【问题描述】:
在我的 iOS 应用程序中,我有一个 UITextField,它目前将其字符输入限制为 50 个字符,当它接收到单个字符时,它会启用一个 UIButton。我现在要做的是确保用户也只能输入字母数字字符,但这是我遇到问题的地方。这是我到目前为止的代码:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
BOOL canEdit=NO;
NSCharacterSet *myCharSet = [NSCharacterSet alphanumericCharacterSet];
NSUInteger newLength = [textField.text length] + [string length] - range.length;
if (newLength > 0) {
for (int i = 0; i < [string length]; i++)
{
unichar c = [string characterAtIndex:i];
if (![myCharSet characterIsMember:c])
{
canEdit=NO;
self.myButton.enabled = NO;
}
else
{
canEdit=YES;
self.myButton.enabled = YES;
}
}
} else self.myButton.enabled = NO;
return (newLength > 50 && canEdit) ? NO : YES;
}
最初,我的代码只是将字符输入限制为 50 个字符,启用按钮如下所示:
NSUInteger newLength = [textField.text length] + [string length] - range.length;
if (newLength > 0) self.doneButton.enabled = YES;
else self.doneButton.enabled = NO;
return (newLength > 45) ? NO : YES;
我想说的是,我想在现有代码中加入字母数字字符的限制,而不是替换它。这对我来说是具有挑战性的部分。
【问题讨论】:
-
希望对您有所帮助..rajneesh071.blogspot.in/2012/12/…
-
您已经asked this, and got an answer,然后删除了您的问题。请勿转发。
标签: ios objective-c uitextfield uitextfielddelegate