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 输入附件视图问题的主要内容,如果未能解决你的问题,请参考以下文章