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

问题描述 投票:6回答:5

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

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

iphone ipad uiview uitextfield
5个回答
5
投票

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

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

15
投票

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

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


3
投票

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

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

0
投票

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


你可以尝试打电话

[myTextField setNeedsLayout];
[myTextField setNeedsRedraw];

强迫它重绘自己?

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


0
投票

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

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

斯威夫特4

UIView.animate(withDuration: 0.3) {
  myTextFieldOrTextView.inputAccessoryView?.alpha = 0      
}
© www.soinside.com 2019 - 2024. All rights reserved.