TextField 输入附件视图问题

Posted

技术标签:

【中文标题】TextField 输入附件视图问题【英文标题】:TextField Input Accessory View Issue 【发布时间】:2017-03-20 19:54:00 【问题描述】:

我在键盘上方添加视图,为此我使用文本字段输入附件视图。 我正在使用以下代码添加它,但是一旦我使文本字段成为第一响应者,它的应用程序就会崩溃。谁能让我知道我做错了什么。我需要指出的另一件事是,如果我只是将这个视图放在我的控制器中它工作正常,但是对于基于组件的方法,一旦我尝试给这个视图类它就会失败。

  keyboardView = (KeyboardAccessoryView*)[[NSBundle mainBundle] loadNibNamed:@"KeyboardAccessoryView" owner:self options:nil];
    self.secureNumberTxtField.inputAccessoryView = keyboardView;
    self.secureNumberTxtField.delegate = self;

    [self.secureNumberTxtField becomeFirstResponder];

错误: 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[__NSArrayM tag]:无法识别的选择器发送到实例

【问题讨论】:

loadNibNamed: 返回一个数组,您的视图可能是该数组的第一个对象。 (KeyboardAccessoryView*)[[[NSBundle mainBundle] loadNibNamed:@"KeyboardAccessoryView" owner:self options:nil]firstObject] 非常感谢@dan 和 Teja。是的,它现在可以工作了。 【参考方案1】:

替换

keyboardView = (KeyboardAccessoryView*)[[NSBundle mainBundle] loadNibNamed:@"KeyboardAccessoryView" owner:self options:nil];

 keyboardView = (KeyboardAccessoryView*)[[[NSBundle mainBundle] loadNibNamed:@"KeyboardAccessoryView" owner:self options:nil] lastObject];

返回一个不是 KeyboardAccessoryView 并且可能导致崩溃的数组

【讨论】:

以上是关于TextField 输入附件视图问题的主要内容,如果未能解决你的问题,请参考以下文章

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

以编程方式创建输入附件视图

inputAccessoryView 未显示在键盘上方

单击按钮时输入附件视图

如何为输入附件视图的高度设置动画?

如何使用 UISearchBar 作为输入附件视图?