2010-07-01 2 views
10

Я видел this question, но вопрос в том, как узнать, какой textView является первым ответчиком? This question looked promising, чтобы выяснить первого ответчика, но оказывается, что он вызывает частные API. Есть ли способ скрыть клавиатуру или определить первого ответчика в качестве клавиши «один-кто-есть-клавиатура»?Скрыть клавиатуру ввода на iPhone, не зная первого ответчика?

+0

Возможный дубликат [Простой способ убрать клавиатуру?] (Http://stackoverflow.com/questions/741185/easy-way-to-dismiss-keyboard) – Senseful

+0

Также см. [Отключение клавиатуры при касании везде вне текстового поля] (http://stackoverflow.com/questions/11274119/dismiss-keyboard-on-touch-anywhere-outside-uitextfield) – ToolmakerSteve

ответ

25

Это легко:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES]; 

взглянуть на UIView Class Reference.

+1

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

+0

UIWindow является подклассом UIView; он наследует метод endEditing от UIView. –

+0

Спасибо, отличный материал. –

4

[textView isFirstResponder] должен сообщить вам, является ли это первым ответчиком. Думаю, вы могли бы просто пропустить все текстовые поля в своем классе, чтобы проверить, является ли это первым ответчиком.

Или вы можете просто вызвать resignFirstResponder на каждом текстовом поле, и он все равно будет работать.

+0

+1, что помогает, хотя я держусь за лучший ответ. –

+0

На самом деле, подумав, вторая часть вашего ответа заставляет меня понять, что благодаря моему хорошо разработанному приложению :), я могу просто сделать это. –

3

Я считаю, что вы должны выбрать что-то, чтобы стать первым ответчиком, что, вероятно, ничего не делает само по себе, и назовите его -[UIResponder becomeFirstResponder]. Это будет хорошо работать с UIViewController или UIWindow (который, как мне кажется, вы можете получить через -[UIView window]), потому что у них будут самые похожие цепочки ответчиков, и он заставит текущий первый респондент потерять свой первый статус Responder, отбросив клавиатуру, но также не будет поднимите клавиатуру, так как это не будет UITextField.

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