#iphone #button #uiwebview #keyboard #accessoryview
#iPhone #кнопка #uiwebview #клавиатура #accessoryview
Вопрос:
Я ищу способ добавить кнопку в вид аксессуаров клавиатуры, ту, которая появляется при касании поля ввода в UIWebView, без использования некоторых частных функций или некоторых сомнительных трюков.
Вы знаете, как я могу это сделать?
Примечание: Я знаю, как я могу перехватывать события отображения / скрытия клавиатуры. Я спрашиваю о том, как добавить кнопку.
Комментарии:
1. Привет, взгляните на следующую ссылку gabriel-tips.blogspot.com/2011/05 /…
Ответ №1:
Вы можете сделать это, UIKeyboardWillShowNotification
заглянув в UIWindow reference для получения информации об этом :
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification object:nil];
Это уведомление появляется, когда выбрано текстовое поле, даже из a UIWebView
.
Посмотрите на пример кода Apple KeyboardAccessory, который показывает, как это сделать. В этом примере кода используется свойство UITextXxxx inputAccessoryView
, которое, я сомневаюсь, вы сможете использовать. Но уведомление предоставит вам достаточно информации, чтобы добавить ваш аксессуар непосредственно в ваш вид или даже в верхнее UIWindow, и это даже путем анимации его с помощью клавиатуры :
(gdb) po notification
NSConcreteNotification 0xb5a2190 {name = UIKeyboardWillShowNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = "0.300000011920929";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 260}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 610}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 350}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 480}, {320, 260}}";
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 220}, {320, 260}}";
}}
Ответ №2:
UIKit позволяет приложениям заменять пользовательские представления ввода системной клавиатурой. Это также позволяет приложениям иметь вспомогательный вид над системной клавиатурой или пользовательский вид ввода. Кроме того, это позволяет приложениям воспроизводить звуки нажатия клавиш, когда пользователи нажимают на элементы управления в режиме ввода или в режиме вспомогательного ввода.
Подробнее смотрите здесь
Ответ №3:
Взгляните на этот пример Apple, поскольку он делает именно то, что вы ищете. Но в целом идея состоит в том, чтобы заменить inputAccessoryView на UIWebView
, чтобы показать ваш пользовательский вид.