我有一个UITableView,其中一些单元格包含UITextField对象,另一些单元格包含UIButton对象。当其中一个textFields是第一响应者(键盘显示)时,我无法重新调整其第一响应者状态。当用户点击或触摸另一个单元格中的按钮时,即使我在“退出时结束”和“编辑完成结束”事件上调用[textField resignFirstResponder]
,textField仍然不会重新签名。单击按钮时,我也在调用[button becomeFirstResponder]
。我想这与在不同单元格中的对象有关。任何想法?
编辑:
我正在辞职第一响应者:
-(IBAction)endEditing:(id)sender {
UITextField *textField = (UITextField *)sender;
[textField resignFirstResponder];
}
在两个UITextField事件上调用endEditing:
方法:'确实在退出时结束'和'编辑完成结束'。
答案 0 :(得分:0)
你在哪里调用这个[textField resignFirstResponder]
,这个textField在哪里声明?
正确的方法是声明一个实例变量:
UITextField *activeTextField;
一旦任何文本字段变为活动状态,请将其设置为activeTextField。然后当您按下按钮时,执行[activeTextField resignFirstResponder]; activeTextField = nil;