2015-08-04 2 views
1

Я работаю над пользовательской клавиатурой для iOS, которая будет иметь собственное поле поиска (аналогично реализована PopKey).iOS Пользовательская клавиатура не может вернуть фокус в текстовое поле приложения

Текстовое поле моей клавиатуры может делать фокус с becomeFirstResponder, и я могу отказаться от него, используя resignFirstResponder. Однако после того, как я ушел в отставку, у хост-приложения есть трудное время, отталкивающее внимание, несмотря на касание формы. Текстовое поле приложения все равно покажет, что текстовый курсор мигает.

Любые идеи? Спасибо

ответ

2

Решение - это взломать, так как прямо сейчас вы не можете вернуть хост-приложение своим фокусом.

  • подклассы UITextField и на его делегатом реализации textFieldShouldBeginEditing путем возвращения NO.

  • Добавить BOOL свойства isSelected, который получает набор для YES в touchesBegan (не следует путать с selected свойства по умолчанию)

  • В keyPressed методе вашей клавиатуры, если searchField.isSelected, манипулировать searchField.text. Иначе, манипулируйте textDocumentProxy, как обычно.
  • Добавить clear кнопку и метод, который вытирает searchField.text и searchField.isSelected, что позволяет любые дальнейшие нажатия клавиш, чтобы вернуться к textDocumentProxy
  • Добавить анимацию, которая воспроизводит мигающий курсор типа