iPhone: как я могу активировать текстовое поле программно (и не ждать, пока пользователь коснется его)

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

У меня пока нет ivar в коде для UITextField. Я бы предположил, что мне нужен один. На данный момент я просто полагаюсь на то, что делегат выведет клавиатуру.

(Я знаю, что это не UITextViewDelegate, как говорит тег, но я новичок в stackoverflow и не могу создать правильный тег UITextFieldDelegate.)


person Paul    schedule 18.06.2010    source источник


Ответы (1)


Похоже, вы хотите использовать [textField becomeFirstResponder] в viewDidAppear.

person JoeGaggler    schedule 18.06.2010
comment
Это имеет смысл. Но как мне получить это textField для начала? Кажется, это не свойство моего представления, и хотя я добавил ivar UITextField в свое представление, я не вижу, как подключить его к текстовому полю в xib. Мой класс выглядит примерно так: @interface NewSceneViewController : UIViewController ‹UITextFieldDelegate› { IBOutlet UITextField *tField; } @property (неатомарное, сохраняемое) UITextField *tField; @конец - person Paul; 19.06.2010
comment
Подождите, я понял. Мне нужно было добавить ivar UITextField и сделать его свойством, а затем назначить его на этапе @synthesize (@synethesize textField = tField;), затем в IB мне нужно было прикрепить новый элемент ссылки (tField) к владельцу файла. - person Paul; 19.06.2010
comment
О, и я должен был убедиться (в IB), что владелец файла был делегатом как представления, так и текстового поля. В противном случае клавиатура не реагировала бы на кнопку «Готово». - person Paul; 19.06.2010