Как подтянуть UIKeyboard без UITextField или UITextView?
В настоящее время я разрабатываю игру OpenGL ES для iPhone и iPod touch.
Мне было интересно, как я могу легко подтянуть UIKeyboard?
Есть ли официальная документированная возможность подтянуть UIKeyboard без использования UITextField UITextView?
Ответы
Ответ 1
Это не "официально" возможно - вы не можете вообще получить доступ к объекту UIKeyboard, оставаясь в рамках рекомендаций Apple.
Создание невидимого UITextField, тогда вызов [textField becomeFirstResponder]
выполнит задание - вы можете сначала подклассифицировать UITextField, а затем переопределить метод делегата textField:shouldChangeCharactersInRange:
, чтобы перенаправить ввод текста туда, куда вы хотите.
Ответ 2
Если вы подклассифицируете UIResponder и объявляете протокол UIKeyInput, клавиатура появится, когда вы станете первымResponder.
Смотрите здесь протокол UIKeyInput.
Одна вещь, которая помогла мне в том, что вам нужно переопределить сообщение canBecomeFirstResponder.
Ответ 3
Это действительно возможно. Я сам много боролся с этим. Протокол UIKeyInput может использоваться для вытягивания клавиатуры без использования UITextField или UITextView. Однако он доступен только в iOS 3.2 и выше. Ниже приведено учебник.
Надеюсь, что это поможет.
Ответ 4
Я отобразил клавиатуру без видимого UITextField, поместив мой текстовый фрейм из видимого экрана:
#define TEXT_FRAME -50,-50,0,0
self.textField = [[UITextField alloc] initWithFrame:CGRectMake(TEXT_FRAME)];
Когда я устанавливаю "первый ответчик", клавиатура становится видимой без видимой области ввода:
// show the keyboard
[self.textField becomeFirstResponder];
Я позже отказался от этой идеи. Однако я не знаю его соответствия рекомендациям Apple.
Ответ 5
Я не пробовал, но http://www.cocoadev.com/index.pl?UIKeyboard показывает код, который выглядит так, как будто он должен работать.