2012-06-19 4 views
8

Я пытаюсь изменить UIKeyboardType на клавиатуру алфавита, когда пользователь вводит пробел, отражая эффект ввода апострофа. Однако мой код не изменит внешний вид клавиатуры, пока пользователь не отклонит клавиатуру, а затем снова вернет ее.Изменение UIKeyboardType на основе ввода текста

Редактировать: Чтобы уточнить, тип клавиатуры начинается с UIKeyboardTypeNumbersAndPunctuation, и я хочу перейти на ASCIICapable, потому что типичный пользовательский ввод имеет форму «# cups flour». Я понял, что клавиатура ASCIICapable имеет встроенную функциональность, поэтому презентация клавиатуры, совместимой с ASCII, но показывающая номера/пунктуацию, сначала будет работать.

Вот мой код:

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

    if ([string isEqualToString:@" "]) { 
     textField.keyboardType = UIKeyboardTypeASCIICapable; 
    } 

return YES; 
} 

ответ

10

закрыть клавиатуру, а затем стал первым ответчиком снова. В моем коде я создал IBOutlet для текстового поля * tf. Это сработало.

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

    if ([string isEqualToString:@" "]) { 
     self.tf.keyboardType = UIKeyboardTypeNumberPad; 
     [textField resignFirstResponder]; 
     [self.tf becomeFirstResponder]; 
    } 

    return YES; 
} 
+0

Отлично работает, я должен был подумать об этом. Спасибо Бруно. – MaxGabriel

Смежные вопросы