Как предотвратить клавиатуру, изменяющуюся от Чисел до Алфавита, когда клавиша "Пробел" затронута?

Я имею UITextFields на таблице для ввода значений. Некоторые из этих полей принимают только числа. Я использую UIKeyboardTypeNumbersAndPunctuation для keyboardType, и shouldChangeCharactersInRange отфильтровать символы.

Кроме того, все исправления отключены:

textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
textField.autocorrectionType =  UITextAutocorrectionTypeNo;
textField.autocapitalizationType =  UITextAutocapitalizationTypeNone;

На числовом только поля, когда клавиша "Пробел" затронута, изменения клавиатуры в Алфавите. Я знаю, что это - поведение по умолчанию. Я хочу проигнорировать клавишу "Пробел" и не хочу изменения типа клавиатуры.

Там некоторый путь состоит в том, чтобы изменить это поведение по умолчанию?

PS: другие числовые типы клавиатуры не являются опцией. Мне нужна Пунктуация!

Спасибо

5
задан TechZen 15 January 2010 в 13:06
поделиться

1 ответ

Я не думаю, что можно изменить поведение клавиатуры.

Тем не менее, вы могли бы реализовать текстовое поле : SoldChangeChariacterInrange: замена настраивания: из протокола UITExtFieldDelegate для перехвата пространства (и апострофе), как это, и кажется, работает:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([string isEqualToString:@" "] || [string isEqualToString:@"'"]) {
        NSMutableString *updatedString = [NSMutableString stringWithString:textField.text];
        [updatedString insertString:string atIndex:range.location];
        textField.text = updatedString;
        return NO;
    } else {
        return YES;
    }
}
4
ответ дан 15 December 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: