2013-12-19 22 views
0

我有一个UITextField,我想允许用户在此字段输入最多2个空格。我如何做到这一点?允许在文本中只有2个空格

我想我需要在这里检查一番:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {}

但什么检查?我搜查了网页,但没有发现。

+0

继续搜索,你还没有足够努力搜索。 – cpjolicoeur

回答

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委托。

+0

谢谢,这是我想要的!关于我所知道的代表,并不那么新鲜;) – user2058653

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; 
+0

感谢RegEx的好例子! – user2058653