Я работаю над расширением клавиатуры для iOS, в котором у меня есть собственный UITextField, встроенный в саму клавиатуру. Мне нужно различать нажатия на текстовое поле моей пользовательской клавиатуры и текстовое поле хост-приложения.
В настоящее время у меня есть флаг isSearchTextfieldTapped, чтобы определить, нажал ли пользователь текстовое поле клавиатуры. В большинстве случаев это работает нормально. Однако если текстовое поле хост-приложения пусто и пользователь сначала нажимает на текстовое поле моей клавиатуры, флаг становится истинным, как и ожидалось.
Проблема возникает, когда пользователь впоследствии нажимает на текстовое поле приложения хостинга. На этом этапе мне нужно сбросить флаг isSearchTextfieldTapped на false, но я не могу понять, как определить, что текстовое поле хост-приложения было выбрано после нажатия на текстовое поле клавиатуры.< /p>
Как определить, когда пользователь переключает фокус обратно на текстовое поле хост-приложения, чтобы я мог сбросить свой флаг?
Вот упрощенная версия того, что Я пробовал:
var isKeyboardTextFieldActive = false
var isSearchTextfieldTapped = false
override func textDidChange(_ textInput: UITextInput?) {
print(#function)
// The app has just changed the document's contents, the document context has been updated.
if let beforeInput = proxy.documentContextBeforeInput {
if beforeInput == searchTextfield.text {
isKeyboardTextFieldActive = true
} else {
isKeyboardTextFieldActive = false
}
} else {
if isSearchTextfieldTapped {
isKeyboardTextFieldActive = true
} else {
isKeyboardTextFieldActive = false
}
}
}
extension KeyboardViewController: UITextFieldDelegate{
func textFieldDidBeginEditing(_ textField: UITextField) {
isSearchTextfieldTapped = true
}
func textFieldDidEndEditing(_ textField: UITextField) {
isSearchTextfieldTapped = false
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -tapped-in
Как определить, нажимается ли текстовое поле хост-приложения или настраиваемой клавиатуры в расширении клавиатуры iOS? ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение