没有为 UITextField 正确添加 inputAccessoryView

Posted

技术标签:

【中文标题】没有为 UITextField 正确添加 inputAccessoryView【英文标题】:Not properly add inputAccessoryView for UITextField 【发布时间】:2015-07-06 06:19:40 【问题描述】:

聊天应用需要inputAccessoryView

当我在UIButton 的点击事件上将inputAccessoryView 添加到UITextField 时。该视图完全设置为inputAccessoryView,但文本字段没有成为第一响应者。

(注意:textfield 的超级视图是 viewText。)

- (IBAction)btnOpenTextField:(id)sender

    UIView *accessoryView=[[UIView alloc]init];
    accessoryView.frame=CGRectMake(0,0, _viewText.frame.size.width, _viewText.frame.size.height);
    [accessoryView addSubview:_viewText];

    _txtMessage.inputAccessoryView = accessoryView;
    [_txtMessage becomeFirstResponder];

提前致谢。

【问题讨论】:

不要将附件视图添加到_ViewText viewText 到底是什么?设置 inputAccessoryView 将输入视图从键盘更改为您的自定义视图。确保您的 viewText 是正确的视图。 在将_viewText 作为子视图添加到accessoryView 之前,您是否尝试过removeFromSuperView。如果您需要 _viewText 作为子视图。 @MuhammadAdnan 我不能这样做,因为我想在 inputAccsoryView 中显示“_viewText”。 @shivam viewText 是一个视图,设置在故事板上。 【参考方案1】:

您可以拨打[_textMessage reloadInputViews],代替[_text becomeFirstResponder]

【讨论】:

【参考方案2】:

您想要实现的是不可能的,这将导致递归,或者您可以做的是在屏幕底部和选择文本字段时,您可以将其与键盘的流程设置动画。如果我正确地回答了您的问题,我认为这是一个合适的解决方案。

【讨论】:

我不能这样做,因为我想在 inputAccsoryView 中显示“_viewText”。 那就不要把_viewText里面的TextField拿出来。把它放在另一个视图中。这会导致递归。

以上是关于没有为 UITextField 正确添加 inputAccessoryView的主要内容,如果未能解决你的问题,请参考以下文章

添加到 UITableViewCell 的 contentView 的 UITextField 在 Popover 中无法正确显示(iPad、iOS 4.2)

在没有 UITextField 的情况下正确显示 UIDatePicker

UIImageView 的 UITextField 子视图没有响应触摸事件

在选择时关闭作为 UITextField 输入视图的 UIPickerView

UITextField 无法正确显示文本

以编程方式添加带有约束的 UITextField