Событие UIKeyboardDidShowNotification стреляет, даже когда внешняя клавиатура присутствует

Я должен знать, связана ли внешняя клавиатура. Я знаком с использованием NSNotificationCenter и тем, чтобы заставлять событие UIKeyboardDidShowNotification определить, была ли виртуальная клавиатура показана. Проблема, которую я имею, состоит в том, когда внешняя клавиатура приложена, и вы щелкаете в текстовом поле, которое небольшое представление разоблачает на основании с 'предыдущими' и 'следующими' кнопками. Событие UIKeyboardDidShowNotification стреляет, когда это происходит, даже когда есть связанная внешняя клавиатура. Таким образом, даже когда внешняя клавиатура связана, появляется, как будто виртуальная клавиатура показывается.

Должен там так или иначе отключить это небольшое представление с 'предыдущими' и 'следующими' кнопками от того, чтобы быть показанным, и надо надеяться событие UIKeyboardDidShowNotification не запущено.

Иначе не кажется возможным использовать NSNotificationCenter надежным способом определить, связана ли клавиатура или нет. Я, конечно, не хочу использовать частный API для обнаружения, если клавиатура связана.

3
nl ja de
Виртуальная клавиатура показывает, в то время как внешняя клавиатура связана? I' m перепутанный тем, как этот предыдущий и следующий бар показывает? Это isn' t возможный в iOS, если it' s настроенный... или вы в UIWebView, нажимающем на поле ввода онлайн?
добавлено автор Albert Renshaw, источник
Ответ ниже:)!
добавлено автор Albert Renshaw, источник
Ответ ниже:)!
добавлено автор Albert Renshaw, источник
Да, я нахожусь в UIWebView, щелкающем в поле ввода. Мне ничего не настроили. I' ve, замеченный клавиатура это doesn' у t есть клавиша TAB, хотя моя клавиатура делает. Предыдущие и следующие кнопки выполняют нажатия клавиш заднего счета и счет.
добавлено автор Fred, источник
Да, я нахожусь в UIWebView, щелкающем в поле ввода. Мне ничего не настроили. I' ve, замеченный клавиатура это doesn' у t есть клавиша TAB, хотя моя клавиатура делает. Предыдущие и следующие кнопки выполняют нажатия клавиш заднего счета и счет.
добавлено автор Fred, источник

3 ответы

Here is the best solution I could find.... if a blank space is left they have instructions for that in the comments below the answer as well: how to remove prev next button from virtual keyboard IOS

0
добавлено

Here is the best solution I could find.... if a blank space is left they have instructions for that in the comments below the answer as well: how to remove prev next button from virtual keyboard IOS

0
добавлено

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

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

- (void)keyboardDidShow:(NSNotification *)notification {

    NSDictionary *userInfo = [notification userInfo];
    CGRect kbRect = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];

    if(kbRect.origin.x != 0 || kbRect.origin.y != 0) {
        //external keyboard
    }
    else {
        //onscreen keyboard
    }
}

Вышеупомянутое должно работать, но вы могли всегда отлаживать свое заявление и изменяться, 'если' заявление, чтобы лучше удовлетворить вашим потребностям. Например, так как я только позволяю альбомный макет, я только должен проверить kbRect.origin.x , но вместо того, чтобы проверить, что это отличное от нуля, я использовал числа, которые я получил от отладки.

Я предполагаю, что это - год поздно, но я столкнулся с этим вопросом, исследуя и полагал, что он все еще заслуживает хорошего ответа.

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.