Как обрабатывать UITextField внутри расширения приложения клавиатуры

Я добавил текстовое поле (keyboardTextField) и UISwitch поверх своей пользовательской клавиатуры. Я могу установить фокус ON или OFF для (keyboardTextField) на основе значения Switch моего кода.

- (void)switchToggled:(id)sender
 {
    UISwitch *mySwitch = (UISwitch *)sender;
    if ([mySwitch isOn])
    {
       [keyboardTextField becomeFirstResponder];
    }
    else
    {
        [keyboardTextField resignFirstResponder];
    }
 }

Итак, что происходит прямо сейчас в первый раз, когда моя пользовательская клавиатура запускает свою работу в каждом приложении моего устройства, но я не могу снова выбрать представление ввода основного приложения после изменения значения переключателя на On а затем OFF, и теперь моя пользовательская клавиатура не может ничего писать ни в одном приложении на моем устройстве.

Вопросы такого типа уже задавались здесь и здесь, но пока никто не ответил. Если у кого-то есть обходной путь или какие-либо идеи, пожалуйста, поделитесь.




Ответы (1)


Я делаю дополнительную клавиатуру для IOS, и у меня такая же проблема, как и у вас. Моя цель — добавить UISearchBar на клавиатуру, например этот app, но я не смог найти ответ ни на одном форуме, где задавал этот вопрос.

Я даже обращался в техподдержку Apple, но они ответили, что это баг расширения клавиатуры iOS.

В последний день я обнаружил, что приложение представляет собой клавиатуру Kanvas, и я думаю, что у меня есть решение, и это используйте UILabel вместо UITextField или UISearch в расширении. Это позволит моему приложению работать нормально. Надеюсь, это поможет вам.

person lufutu    schedule 22.05.2015