только символ – не специальный/цифры с клавиатуры – iPhone
-
16-09-2019 - |
Вопрос
Нормальный UITextField
отображает UIKeyboard
который включает буквенно-цифровые+специальные символы
Но мне нужна только альфа...
Мне это нужно, потому что если пользователь вводит что-то вроде -- A'bad
он имеет символ ' - что влияет на мой запрос.
Как мы можем установить только alphabetic
UIKeyboard
пользователю?
Решение
Этот пост SO отвечает на ваш вопрос:Тип пользовательской клавиатуры
Другие советы
Я думаю.Я получил ответ.
В вашей UIViewController
файл .час добавлять delegate<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 (![myCharSet characterIsMember:c]) {
return NO;
}
}
return YES;
}
Вы должны использовать то, что я делаю ниже;
- (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;
}
Вместо отключения или запрета пользователю добавлять '(apostorpe) используйте следующий код, он позволит вам вставить '(apostorpe)
[textEntered stringByReplacingOccurrencesOfString:@" ' " withString:@" ' '"];
Не связан с StackOverflow