键盘可见时,将输入附件视图添加到UITextField

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了键盘可见时,将输入附件视图添加到UITextField相关的知识,希望对你有一定的参考价值。

我想在UITextField上添加输入附件视图,同时它是第一个响应者,即显示键盘。显然,在此状态下将UIView指定给inputAccessoryView属性不会显示此视图。我必须首先解雇键盘并重新选择UITextField

有没有办法在不解除和重新选择的情况下添加输入附件视图?

答案

如果可能的话,只分配一次inputAccessoryView。如果您需要进行自定义,并且只能确定在成为第一个响应者之前已经很晚,那么我仍然只会分配一次。但是在inputAccessoryView方法UITextFieldDelegate中自定义textFieldShouldBeginEditing:的子视图。像这样:

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

您可以在textView上使用reloadInputViews来执行此操作

(我知道这是一个老帖子,但可能对其他人有帮助)

另一答案

我只想动态添加/删除输入附件视图。我最终只是这样做:

[self.responceTextView resignFirstResponder];
self.responceTextView.inputAccessoryView = keyBoardToolbar;
[self.responceTextView becomeFirstResponder];
另一答案

编辑:根据@ fabian789这种方法不起作用。因人而异。


你可以尝试打电话

[myTextField setNeedsLayout];
[myTextField setNeedsRedraw];

强迫它重绘自己?

免责声明:这就是我想尝试的,我不知道它是否会起作用!

另一答案

我还必须在文本更改时添加/删除inputAccessoryView,所以我最终更改了inputAccessoryView.alpha值以使其看起来被删除。

动画是可选的,但它使转换看起来更好:

斯威夫特4

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

以上是关于键盘可见时,将输入附件视图添加到UITextField的主要内容,如果未能解决你的问题,请参考以下文章

iOS 键盘扩展 - 向标准键盘添加按钮(系统范围的输入附件视图)

单击按钮时输入附件视图

自定义键盘附件视图输入

acessoryView 内的 UITextField -- 清除按钮未检测到触摸

IOS 使用输入附件视图切换预测文本视图

swift 键盘粘贴到文本字段使用输入附件视图