только символ - не специальный / цифры с клавиатуры - iPhone

Нормальный UITextField отображает UIKeyboard, который включает альфа + цифровые + специальные символы

Но мне нужна только альфа ...

Мне это нужно, потому что если пользователь вводит что-то вроде - A'bad

у него есть символ '- который влияет на мой запрос.

Как мы можем назначить пользователю только alphabetic UIKeyboard?


person Sagar R. Kothari    schedule 13.08.2009    source источник


Ответы (4)


Это сообщение SO отвечает на ваш вопрос: UIkeyboard type

person Boon    schedule 13.08.2009

Я думаю. Я получил ответ.

В свой UIViewController файл .h добавьте delegate<UITextfieldDelegate>

Теперь добавьте следующий код в файл .m

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

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

}

person Sagar R. Kothari    schedule 13.08.2009

Вы должны использовать, как я делаю ниже;

- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
{
    NSMutableCharacterSet *filteredChars = [NSMutableCharacterSet letterCharacterSet];
    [filteredChars formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
    NSCharacterSet *blockedCharSet = [filteredChars invertedSet];
    if (([string rangeOfCharacterFromSet:blockedCharSet].location == NSNotFound)) {
          return YES;
    }
    return NO;
}
person alicanbatur    schedule 08.04.2015

Вместо того, чтобы отключать или не разрешать пользователю добавлять '(apostorpe), используйте следующий код, он позволит вам вставить' (apostorpe)

[textEntered stringByReplacingOccurrencesOfString:@" ' " withString:@" ' '"];
person Rupesh    schedule 09.04.2012