Ограничить пользователя вводом только одного слова в UITextField - PullRequest
0 голосов
/ 29 апреля 2011

Можно ли разрешить пользователю вводить только одно слово в UITextField? Если да, то как?

Вот текущий код, который я использую:

-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

_disallowedCharacters = [NSCharacterSet whitespaceCharacterSet];

for(int i = 0; i < [_searchBox.text length]; i++){
    unichar c = [_searchBox.text characterAtIndex:i];
    if (![_disallowedCharacters characterIsMember:c])
    {
        return NO;
    }
}
return YES;
}

Ответы [ 2 ]

4 голосов
/ 29 апреля 2011

Использовать протокол UITextFieldDelegate:

- (BOOL) textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)textEntered
{
    for (int i = 0; i < [textEntered length]; i++)
    {
        unichar c = [textEntered characterAtIndex:i];
        if ([disallowedCharacters characterIsMember:c])
        {
            return NO;
        }
    }
    return YES;
}

, где disallowedCharacters - это NSCharacterSet, содержащий символы, которые не должны быть приняты клавиатурой, то есть пробел, пунктуация, цифры и т. Д .:

self.disallowedCharacters = [NSCharacterSet characterSetWithCharactersInString:@" ,.123"];
2 голосов
/ 30 апреля 2011

Для набора символов (для ответа Эвана), который проверяет пробелы и символы новой строки, вы можете использовать

self.disallowedCharacters = [NSCharacterSet whitespaceAndNewlineCharacterSet];

Если вы хотите проверить наличие символов, кроме пробелов и новых строк, создайте mutableCopy и добавьте в него все, что вы хотите:

NSMutableCharacterSet *set = [[NSCharacterSet whitespaceAndNewlineCharacterSet] mutableCopy];
[set formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];
[set formUnionWithCharacterSet:[NSCharacterSet symbolCharacterSet];
[set addCharactersInString:@"whatever you want"];
...
self.disallowedCharacters = [[set copy] autorelease];
[set release];

Документы NSCharacterSet имеют хороший обзор доступных вам наборов символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...