стать первым ответчиком без скрытия клавиатуры - PullRequest
6 голосов
/ 26 ноября 2010

У меня есть представление, которое поддерживает копирование и показывает меню редактирования, используя следующий код:

if ([self becomeFirstResponder]) {
    // bring up edit menu.
    UIMenuController *theMenu = [UIMenuController sharedMenuController];
    [theMenu setTargetRect:[self _textRect] inView:self];
    [theMenu setMenuVisible:YES animated:YES];
}

Проблема заключается в том, что при вызове становления сталФирстРеспондер клавиатура скрывается.Хороший пример правильного поведения - в приложении SMS.Дважды нажмите на сообщение, когда окно ответа видно, и поле ответа теряет фокус, но клавиатура остается на месте.Кроме того, когда пузырь не выбран, поле для ответа снова получает фокус.

1 Ответ

5 голосов
/ 26 ноября 2010

К сожалению, Apple может сделать много вещей, которые недоступны сторонним приложениям.

Я верю, что вы хотите, возможно в iOS 3.2+, если вы сделаете вид, который станет первымОтветчик принимает ввод с клавиатуры.Это достигается тем, что ваш класс представления принимает протокол UIKeyInput :

Подкласс UIResponder может принять этот протокол для реализации простого ввода текста.Когда экземпляры этого подкласса являются первым респондентом, отображается системная клавиатура.

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

...