我是一个应用程序,表视图实例化一个名为“NameCell”的类中的单元格对象,该类具有名为“NameCellView.xib”的nib文件(Name Cell是NameCellView的类)。在NameCellView.xib视图控制器中,有一个名为“NameField”的UITextField。现在我已经尝试将UITextField(NameField)委托设置为文件所有者(例如,cell = NameCell的类)。但是当我这样做时,应用程序会在我尝试与文本字段进行交互时崩溃(例如,当我点击它时),我得到的唯一消息是'(lldb)'并且以下行在main.m中以绿色突出显示app文件:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
关于为什么会发生以及如何解决问题的任何想法?当用户点击“返回”键时,我试图做的所有id都会关闭键盘,所以如果你有一个更好的方法没有授权就可以做到这一点我很满意!
非常感谢你的帮助!任何评论都非常感谢!
答案 0 :(得分:0)
根据描述,事情并不清楚。但请检查xib中的连接。我认为问题出在xib连接
答案 1 :(得分:0)
如果您打开其他方法来解除键盘,可以添加一个“完成”按钮,在点击时,调用“hideKeyboard”方法。
您可以将此按钮添加到键盘配件视图(基本上是一个简单的UIToolBar,带有一些自定义功能,使其看起来不错)。
我不知道如何使用Interface Builder执行此操作,但我知道如何使用纯代码执行此操作:
// setup done button accessory view for keyboard
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[toolBar setBarStyle:UIBarStyleBlackTranslucent];
UIButton *btnDone = [[UIButton alloc] initWithFrame:CGRectMake(20, 8, 65, 30)];
[btnDone setTitle:@"Done" forState:UIControlStateNormal];
btnDone.titleLabel.font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
btnDone.backgroundColor = [UIColor darkGrayColor];
btnDone.layer.cornerRadius = 5.0;
btnDone.tintColor = [UIColor darkGrayColor];
[btnDone addTarget:self action:@selector(hideKeyboard) forControlEvents:UIControlEventTouchUpInside];
[toolBar addSubview:btnDone];
[btnDone release];
// -------------------------------------------------------------------
// let your text field's keyboard know about the accessory view
// -------------------------------------------------------------------
myTextField.inputAccessoryView = toolBar;
...
// Hide Keyboard Method
-(void)hideKeyboard
{
[myTextField resignFirstResponder];
}
这将在键盘上方添加自定义视图,以便您可以按“完成”按钮隐藏键盘。