UITextField, который всегда отвечает первым

У меня есть ViewController, который представляет собой просто текстовое поле, кнопку «Далее» и кнопку «Назад». Я хочу, чтобы текстовое поле всегда было редактируемым, а клавиатура всегда присутствовала. Я также хочу настроить клавиатуру под себя, но это произойдет, когда я разберусь с этой частью.

РЕДАКТИРОВАТЬ: клавиатура в моем случае будет только клавиатурой с 10 цифрами и клавишей возврата.

Каков наилучший способ сделать это? Я работал с UITextField, который работает с пользовательским представлением клавиатуры, а затем делает его первым ответчиком при загрузке представления, но, возможно, есть лучшие способы.

Заранее спасибо!


person sbjluke    schedule 11.02.2013    source источник
comment
Что такое пользовательская клавиатура? Вам действительно нужно сделать один? Каждое приложение, которое я использовал с пользовательской клавиатурой, действительно ужасно. Одна только клавиатура меня так оттолкнула, что я удалил приложение.   -  person Fogmeister    schedule 12.02.2013
comment
На самом деле это просто KeyPad. Мне нужны только цифры. Кроме того, проверьте приложение Scorekeeper XL. Я думаю, что его клавиатура прекрасна.   -  person sbjluke    schedule 12.02.2013
comment
Я посмотрю на это приложение, но если вам просто нужна цифровая клавиатура и клавиатура Backspace, вы можете установить собственный стиль клавиатуры, чтобы сделать это.   -  person Fogmeister    schedule 12.02.2013
comment
Если вам нужна только клавиатура, установите тип клавиатуры текстового поля на UIKeyboardTypeNumberPad.   -  person rmaddy    schedule 12.02.2013
comment
Да, я понимаю это. Что я действительно хочу знать, так это то, как сделать так, чтобы клавиатура была там, когда появляется вид, без ее скольжения вверх во вторую секунду, когда она появляется.   -  person sbjluke    schedule 12.02.2013
comment
@sbjluke Смотрите ответы на этот вопрос. Используйте 1_.   -  person rmaddy    schedule 12.02.2013


Ответы (3)


Чтобы сделать UITextField, всегда используйте клавиатуру...

В функции viewDidAppear или viewWllAppear сделайте это...

[self.textField becomeFirstResponder];

Это приведет к появлению клавиатуры и текстовому полю, отвечающему на ввод.

Чтобы отключить клавиатуру, вы должны запустить...

[self.textField resignFirstResponder];

Пока вы не запустите это, он будет держать фокус клавиатуры.

person Fogmeister    schedule 11.02.2013
comment
Нет необходимости реализовывать метод textFieldShouldReturn. Это не связано с тем, что клавиатура уходит или нет. - person rmaddy; 12.02.2013
comment
Ах, хороший момент. Я все равно склонен переопределять это по другим причинам, но я думал о том же. - person Fogmeister; 12.02.2013

В методе viewWillAppear: контроллера представления вы можете вызвать becomeFirstResponder в текстовом поле. Это заставит клавиатуру появляться автоматически, когда появляется контроллер представления. Пока нет другого способа отключить клавиатуру, это все, что вам нужно.

Конечно, на iPad есть кнопка на клавиатуре, чтобы закрыть его. Если вы хотите, чтобы эта кнопка не работала, реализуйте следующий метод делегата:

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    return NO;
}
person rmaddy    schedule 11.02.2013

И в случае, если вы действительно хотите иметь свою собственную клавиатуру. создайте вид правильного размера и украсьте его ;).. и поместите в свойство inputView textFiled.

textField.inputView = ваш пользовательский вид клавиатуры

Ваше здоровье.

person devluv    schedule 12.02.2013