Я имею UITextFields
на таблице для ввода значений. Некоторые из этих полей принимают только числа. Я использую UIKeyboardTypeNumbersAndPunctuation
для keyboardType, и shouldChangeCharactersInRange
отфильтровать символы.
Кроме того, все исправления отключены:
textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
На числовом только поля, когда клавиша "Пробел" затронута, изменения клавиатуры в Алфавите. Я знаю, что это - поведение по умолчанию. Я хочу проигнорировать клавишу "Пробел" и не хочу изменения типа клавиатуры.
Там некоторый путь состоит в том, чтобы изменить это поведение по умолчанию?
PS: другие числовые типы клавиатуры не являются опцией. Мне нужна Пунктуация!
Спасибо
Я не думаю, что можно изменить поведение клавиатуры.
Тем не менее, вы могли бы реализовать текстовое поле : 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;
}
}