У меня есть требование, согласно которому мне нужно отключить отображение сторонних клавиатур (например, Gboard от Google) в пользовательском интерфейсе, если указан c набор UITextField. Мне нужно сделать это для чувствительных полей ввода, таких как поле электронной почты, поле кредитной карты.
Из документации мне удалось реализовать следующий код
func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier) -> Bool {
if extensionPointIdentifier == .keyboard {
if vc.dontShowCustomKeyboard {
return false
}
}
return true
}
Я возвращаю false, если представление Контроллер имеет логическое значение, которое говорит не использовать настраиваемую клавиатуру. Но какое-то время я действительно вижу, как появляется настраиваемая клавиатура, хотя я возвращаю bool. Это правильно работает впервые. После этого, если я подключу go к другому контроллеру, коснитесь любого текстового поля в этом контроллере (предположим, что он поддерживает настраиваемую клавиатуру) и вернитесь и выберите поле в 1-м контроллере, появится настраиваемая клавиатура.
Я не уверен, почему это происходит. Есть ли у кого-нибудь какие-либо материалы, пожалуйста, поделитесь. Спасибо.