Добавление вспомогательного вида ввода в UITextField, когда клавиатура видна - PullRequest
6 голосов
/ 10 мая 2011

Я хотел бы добавить вспомогательное представление ввода к UITextField, пока оно является первым респондентом, то есть показывает клавиатуру.Очевидно, что присвоение UIView свойству inputAccessoryView в этом состоянии не отображает это представление.Я должен сначала отклонить клавиатуру и повторно выбрать UITextField.

. Есть ли способ добавить вспомогательное представление ввода без отклонения и повторного выбора?

Ответы [ 5 ]

15 голосов
/ 01 апреля 2015

Вы можете использовать reloadInputViews для textView, чтобы сделать это

(я знаю, что это старый пост, но может помочь другим)

5 голосов
/ 10 мая 2011

Если возможно, присвойте inputAccessoryView только один раз. Если вам нужно настроить его, и вы можете определить, насколько очень поздно, прежде чем стать первым респондентом, я все равно назначу его только один раз. Но настройте подпредставления inputAccessoryView в методе UITextFieldDelegate textFieldShouldBeginEditing:. Вот так:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    [self setupInputAccessoryViewForTextField:textField];
    return YES;
}
3 голосов
/ 19 октября 2012

Я просто хотел, чтобы входное вспомогательное представление добавлялось / удалялось динамически.Я просто сделал это:

[self.responceTextView resignFirstResponder];
self.responceTextView.inputAccessoryView = keyBoardToolbar;
[self.responceTextView becomeFirstResponder];
0 голосов
/ 18 апреля 2018

Мне также пришлось добавить / удалить inputAccessoryView при изменении текста, поэтому я в итоге изменил значение inputAccessoryView.alpha, чтобы оно выглядело удаленным.

Анимация необязательна, но она делает переход лучше:

Swift 4

UIView.animate(withDuration: 0.3) {
  myTextFieldOrTextView.inputAccessoryView?.alpha = 0      
}
0 голосов
/ 10 мая 2011

РЕДАКТИРОВАТЬ: Согласно @ fabian789 этот метод не работает. YMMV.


Вы можете попробовать позвонить

[myTextField setNeedsLayout];
[myTextField setNeedsRedraw];

заставить его перерисовать себя?

Отказ от ответственности: это то, что я бы попробовал, я не знаю, сработает ли это!

...