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