【发布时间】:2010-08-31 15:54:12
【问题描述】:
我在 UITableViewCell 上有一个 UITextField,在另一个单元格上有一个按钮。
我点击 UITextField(出现键盘)。
UITextField 调用了以下方法:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
NSLog(@"yes, it's being called");
owner.activeTextField = textField;
return YES;
};
其中 owner.activeTextField 是一个(保留,非原子)属性。
问题 当键盘可见时,我将单元格滚动到视图之外。 然后我单击另一个单元格上的按钮。按钮调用:
[owner.activeTextField resignFirstResponder]
这会导致 EXC_BAD_ACCESS。
有什么想法吗?细胞肯定在内存中。我的猜测是,一旦它消失,它就会从视图中删除,并且它的一个属性(父视图?)变为 nil 并导致上述错误..
我说的对吗?
TL;DR;从视图中删除 UITextField 时,如何删除键盘(退出第一响应者)?
【问题讨论】:
-
一旦用户开始拖动 UITableView,我通过发送 resignFirstResponder 解决了这个问题。有人在答案中提出了类似的建议,然后删除了答案,所以我无法接受:(无论如何 - 我仍然不知道是什么导致了错误,但解决方法可以正常工作。
-
哇,这么奇怪的问题,但它完全为我解决了,谢谢!
-
我很高兴它有帮助 - 然后投票赞成这个问题:)
-
我已经做过了……你只能做一次。
标签: iphone cocoa-touch uitextfield first-responder