Как показать клавиатуру программно - PullRequest
2 голосов
/ 09 января 2011

У меня есть UITableView, где каждая ячейка состоит из двух UILabel, я хочу показать клавиатуру, когда ячейка выбрана? Возможно ли это с UILabels?

Ответы [ 3 ]

2 голосов
/ 10 января 2011

Если вы просто хотите открыть клавиатуру, вы можете добавить крошечный невидимый (прозрачный 1x1 с прозрачным текстом) UITextField в любом месте в любом видимом представлении и сделать это текстовое поле первым отвечающим, чтобы открыть клавиатуру. Затем вы можете перенаправить вводимый текст на любую из двух меток (или куда-либо еще), используя делегаты текстового поля для захвата ввода.

1 голос
/ 16 августа 2013

Да, метка должна соответствовать протоколу UIKeyInput .Обратите внимание, что это предложение «или-или».Если метка соответствует UIKeyInput, то, когда она становится первым респондентом, будет отображаться клавиатура, хотите вы этого или нет.

0 голосов
/ 09 января 2011

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

Вы не можете напрямую использовать клавиатуру для редактирования UILabels. Самое простое решение - напрямую использовать UITextFields вместо UILabels.

Альтернативой является наличие в ячейке UITextField и UILabel. Затем покажите текстовое поле (по настройкам его ß hidden property to YES`), когда ячейка выбрана, и скройте метку. Когда редактирование закончено, сделайте обратное (т. Е. Показывая метки, скрывая текстовые поля).

Чтобы отобразить клавиатуру сразу после выбора ячейки, вы можете позвонить [someTextField becomeFirstResponder];. Чтобы проверить, завершил ли пользователь редактирование (и, например, нажал клавишу возврата), вы можете установить delegate из UITextField.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...