UITextFieldDelegate != IBAction backgroundTap

Объем этого вопроса - IPhone 3.1 sdk (приложение все еще работает в симуляторе)

У меня есть представление таблицы, в котором есть ячейка с UITextField в этой ячейке. Табличное представление сгруппировано и имеет один раздел всего с парой полей. Я НЕ использую IB, поэтому о backgroundTap не может быть и речи (насколько я могу судить, по крайней мере). Когда я нажимаю на текстовое поле, появляется клавиатура. Скрыть это по-прежнему хлопотно. Я включил UITextFieldDelegate, чтобы скрыть клавиатуру, но метод textFieldShouldEndEditing, похоже, не срабатывает при касании фона (когда я имею в виду фон, я касаюсь вне секции сгруппированного представления таблицы). Во-первых, должно ли?

textFieldShouldReturn срабатывает без проблем, и я могу уйти в отставку в этот момент, но не должен ли я уйти в отставку, если фокус сместится с этого элемента управления?

Любая помощь очень ценится - я


person Community    schedule 23.01.2010    source источник


Ответы (1)


Как правило, вы прекращаете редактировать поле, только если:

  • нажмите кнопку «Готово» или кнопку действия на клавиатуре
  • начать редактирование другого поля
  • выйти из представления
  • есть еще одна кнопка на экране, которая удаляет фокус

Из любого из них вы можете вызвать -[textField resignFirstResponder], чтобы убрать клавиатуру и вызвать свой -textFieldShouldEndEditing: метод. Нет никаких причин, по которым простое нажатие на неактивную часть экрана должно скрывать клавиатуру.

person Ben Gottlieb    schedule 23.01.2010