我有一个UITextField,我希望允许用户在此字段中输入最多2个空格。我怎么能这样做?
我想我需要在这里检查一下:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {}
但要检查什么?我在网上搜索过,但一无所获。
答案 0 :(得分:2)
您想为此使用正则表达式。表达式\s\s+
表示两个或多个空格,回车符或制表符。
NSString *text = textField.text;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:
@"(\s\s+)" options:0 error:nil];
[regex replaceMatchesInString:str options:0 range:NSMakeRange(0, [str length]) withTemplate:@" "];
textField.text = text;
答案 1 :(得分:1)
这将返回字符串
中有多少个空格 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
int numberOfSpaces = [[textField.text componentsSeparatedByString:@" "] count];
if (numberOfSpace > 2) {
//notify user that he/she has too many spaces
}
}
你似乎也是iOS新手。不要忘记将视图控制器设置为UITextField委托。