我想将输入附件视图添加到UITextField
,同时它是第一个响应者,即显示键盘。显然,在此状态下为UIView
属性分配inputAccessoryView
不会显示此视图。我必须首先关闭键盘并重新选择UITextField
。
有没有办法在不解除和重新选择的情况下添加输入附件视图?
答案 0 :(得分:15)
您可以在textView上使用reloadInputViews来执行此操作
(我知道这是一个老帖子,但可能对其他人有帮助)
答案 1 :(得分:5)
如果可能,只分配inputAccessoryView
一次。如果您需要进行自定义,并且只能确定在成为第一个响应者之前已经很晚,那么我仍然只会分配一次。但是,在inputAccessoryView
方法UITextFieldDelegate
中自定义textFieldShouldBeginEditing:
的子视图。像这样:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[self setupInputAccessoryViewForTextField:textField];
return YES;
}
答案 2 :(得分:3)
我只想动态添加/删除输入附件视图。 我最终只是这样做了:
[self.responceTextView resignFirstResponder];
self.responceTextView.inputAccessoryView = keyBoardToolbar;
[self.responceTextView becomeFirstResponder];
答案 3 :(得分:0)
您可以尝试拨打
[myTextField setNeedsLayout];
[myTextField setNeedsRedraw];
强制它重绘自己?
免责声明:这就是我想尝试的,我不知道它是否会起作用!
答案 4 :(得分:0)
我还必须在文本更改时添加/删除inputAccessoryView
,因此我最终更改了inputAccessoryView.alpha
值,使其看起来已被删除。
动画是可选的,但它使过渡看起来更好:
Swift 4
UIView.animate(withDuration: 0.3) {
myTextFieldOrTextView.inputAccessoryView?.alpha = 0
}