Если вы работаете в других средах, таких как веб-страница в настольном браузере, вы можете «переходить» от элемента к элементу, давая каждому элементу «фокус».
В iOS Элементы пользовательского интерфейса не имеют такого состояния «фокуса».
Если вы нажмете, например, UITextField
или UITextView
, этот объект станет firstResponder
, и поскольку он принимает ввод с клавиатуры, клавиатура показана. UIButton
не не , по умолчанию имеет включенный canBecomeFirstResponder
и не принимает ввод с клавиатуры.
Вот почему нажатие кнопки не отменяет клавиатуру - или «взять «отвести фокус» от текстового поля.
Вы можете подкласс UIButton
, чтобы придать ему эти свойства, или, как показано в другом ответе, добавить код, чтобы текстовое поле сообщило resignFirstResponder
, но это не стандартное поведение.