Я работаю над расширением клавиатуры для 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
Программируем под IOS
1728622839
Anonymous
Я работаю над расширением клавиатуры для 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
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79076856/how-to-detect-whether-a-hosting-apps-or-custom-keyboard-text-field-is-tapped-in[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия