2011-01-15 3 views
1

Хорошо, вот что я пытаюсь сделать. У меня есть UITextField. Когда я нажимаю его, я хочу вызвать один из моих методов. Когда я дважды нажимаю (дважды нажимаю его одним пальцем), я хочу отредактировать текстовое поле (как если бы у меня было одно нажатие на обычный UITextField.)Изменить события касания по умолчанию для UITextField

Я не уверен, как это сделать. Я думал о субклассификации UITextField и пытался перехватить событие касания по мере его отправки, но я не могу понять, какие методы переопределить для этого. Какие методы следует переопределять и как?

Или, если есть лучший способ сделать это, дайте мне знать! Я все уши и не знаю, как действовать дальше.

ответ

4

Это будет включать несколько этапов:

1.) Добавить NSBoolean свойство, которое отслеживает ли пользователь уже нажал на поле один раз в последнее время (вы можете решить, что в последнее время означает здесь).

2.) Внесите метод textFieldShouldBeginEditing: метод делегата, назначенный вашему UITextField. Если пользователь дважды постучал быстро (обнаруживается, проверяя, истинно ли логическое свойство), затем верните YES. Если нет, вызовите ваш метод, а затем верните NO.

+0

Слово предостережения здесь. Этот метод запускается чаще, чем просто нажатие, например, при нажатии вкладки на внешней клавиатуре для перемещения текстовых полей. Протестировано на iOS 9. –

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