iOS, как совместить клавиатуру с текстовым полем и показать их вместе?

Я пытаюсь создать виджет ввода текста для моего приложения. Я нашел пример XCDFormInputAccessoryView на Github и изменил его так, чтобы текстовое поле находилось в дополнительном представлении. Теоретически это позволяет мне вызывать виджет ввода текста из любой части моего приложения.

Для пояснения: в любом из контроллеров представления нет textField, для которого я хочу представить этот виджет.

Тем не менее, я не могу понять, как представить виджет ввода текста. Я старался:

[self.inputAccessoryView becomeFirstResponder];
[self.inputAccessoryView.textField becomeFirstResponder];
[[UIApplication sharedApplication] sendAction:@selector(becomeFirstResponder) to:nil from:nil forEvent:nil];
[[UIApplication sharedApplication] sendAction:@selector(becomeFirstResponder) to:self.inputAccessoryView.textField from:nil forEvent:nil];

Как сделать так, чтобы клавиатура показывала, если текстовое поле, для которого оно отображается, является принадлежностью самой клавиатуры?

1 ответ

Решение

Ваша текущая попытка не работает, потому что текстовое поле в дополнительном представлении не находится в иерархии представления, когда вы пытаетесь сделать его первым респондентом.

То, что вам нужно сделать, это сделать что-то вроде "фиктивного" текстового поля, которое является частью иерархии представления, но находится за пределами экрана, поэтому вы не можете видеть его, но можете сделать его первым респондентом, а затем переключить первого респондента на Ваше другое текстовое поле после отображения клавиатуры.

Другие вопросы по тегам