UIControl Touch Down событие не работает, когда содержит UIScrollView - PullRequest
0 голосов
/ 06 августа 2011

UIView содержит UIScrollView, который содержит все мои UITextFields. Когда клавиатура появляется, кроме нажатия кнопки «Готово», я хочу, чтобы клавиатура также исчезала, когда я щелкаю где-то в представлении вне клавиатуры. Я изменил UIView на UIControl и обрабатывает событие «Touch Down». Ничего не произошло. Это потому, что в нем содержится прокрутка?

Ответы [ 2 ]

0 голосов
/ 06 октября 2016

если ваше текстовое поле находится внутри scrollview, снимите флажок с задержкой касания содержимого в свойстве inspect для просмотра с прокруткой.Это должно работать тогда.

0 голосов
/ 06 августа 2011

Самый простой способ сделать то, что вы пытаетесь сделать, это создать UIButton в конструкторе интерфейсов, который имеет альфа-коэффициент 0.0f и охватывает весь экран.Когда вы говорите [textField intoFirstResponder], говорите, что exitButton.hidden = FALSE;

Затем создайте IBAction, связанный с кнопкой, закрывающей клавиатуру ([textField resignFirstResponder]), и снова скрывает кнопку.

Таким образом, у вас есть невидимая, но нажимаемая кнопка, которая мешает другим представлениям при наборе текста и скрывает клавиатуру при нажатии вне клавиатуры, без необходимости связываться с touchSegan.

В качестве примечания, причинаваши прикосновения начали не работать, потому что касания обрабатываются только тогда, когда ios определяет, что ваш контроллер представления является самым нижним видом, в котором находится касание. Поскольку касание находится в вашем представлении прокрутки, представление прокрутки обрабатывает касания, а не ваше представлениеконтроллер.

...