Adding input accessory view to UITextField while keyboard is visible

删除回忆录丶 提交于 2019-12-06 01:52:26

问题


I would like to add an input accessory view to a UITextField while it is the first responder, i.e. showing the keyboard. Apparently, assigning a UIView to the inputAccessoryView property in this state doesn't display this view. I have to first dismiss the keyboard and re-select the UITextField.

Is there a way to add an input accessory view without dismissing and re-selecting?


回答1:


If possible only assign the inputAccessoryView once. If you need it to be customized, and can only determine how very late just before becoming the first responder, then I would still only assign it once. But customize the subviews of the inputAccessoryView in the UITextFieldDelegate method textFieldShouldBeginEditing:. Like so:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    [self setupInputAccessoryViewForTextField:textField];
    return YES;
}



回答2:


You can use reloadInputViews on the textView to do that

(I know this is an old post but might help to others)




回答3:


I just wanted an input accessory view added/removed dynamically. I ended up simply doing this:

[self.responceTextView resignFirstResponder];
self.responceTextView.inputAccessoryView = keyBoardToolbar;
[self.responceTextView becomeFirstResponder];



回答4:


EDIT: According to @fabian789 this method doesn't work. YMMV.


You could try calling

[myTextField setNeedsLayout];
[myTextField setNeedsRedraw];

to force it to redraw itself?

Disclaimer : This is just what I would try, I don't know if it will work!




回答5:


I also had to add/remove inputAccessoryView on text change so I ended up changing the inputAccessoryView.alpha value to make it look removed.

The animation is optional but it makes the transition look better:

Swift 4

UIView.animate(withDuration: 0.3) {
  myTextFieldOrTextView.inputAccessoryView?.alpha = 0      
}


来源:https://stackoverflow.com/questions/5953439/adding-input-accessory-view-to-uitextfield-while-keyboard-is-visible

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!