我有4个文本字段,我想同时放置两个限制。一个是,用户应该只能输入大写字母,最大字符数限制为2。我给这家代码如下: -限制用户输入字符,并将每个输入的字母转换为大写字母在ios
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
// Below logic is for All 4 Modifer Textfields
// we are restrict the user to enter only max 2 characters in modifier textfields.
if (textField==txt_modifier1 || textField==txt_modifier2 || textField==txt_modifier3 ||
textField==txt_modifier4) {
textField.text = [textField.text stringByReplacingCharactersInRange:range
withString:[string
uppercaseStringWithLocale:[NSLocale currentLocale]]];
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return (newLength > 2) ? NO : YES;
}
return YES;
}
,这是不正常,因为它是附加一个或多个字符,我在任何字符输入,也没有限制字符数为2。请提出解决这个问题的方法。
的感谢!队友现在工作正常。谢谢你解释我的错误。 – Shikhar 2013-05-06 11:01:44
如果我也想限制用户输入特殊字符,那么我可以在这里设置什么样的条件。 – Shikhar 2013-05-06 11:06:17
你可以使用一个反转的NSCharacterSet。例如,如果你不想要除大写以外的任何字符,你可以在上面加上'NSString * result':if([string componentsSeparatedByCharactersInSet:[[NSCharacterSet capitalizedLetterCharacterSet] invertedSet]]。count> 1)return NO; – elslooo 2013-05-06 12:43:08