我有一个基于 iOS 6 的项目,它实现了UITableView
. 表格视图中的每个单元格都包含一个UITextField
允许用户输入信息的单元格。如果用户清除文本字段,或从该字段中删除所有输入,(即[textfield length] == 0
)当他们点击另一个单元格(文本字段)时,它会从表格视图中删除前一个单元格(文本字段),因为它是空的 - 这避免了空在表格视图中累积的单元格。
这一切都是使用一个名为的方法完成的,该方法-textFieldEditingDidEnd:
会触发UIControlEventEditingDidEnd
文本字段的事件:
- (void)textFieldEditingDidEnd:(UITextField *)textField {
NSIndexPath *indexPath = // Index path of the row in the table view
if ([textField.text length] == 0) {
// Delete the cell from the table view
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
但是,当代码被触发时,应用程序崩溃并在控制台上显示以下消息:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempt to delete row containing first responder that refused to resign'
我以前从未见过这条消息,在网上搜索时似乎也没有特别多的引用。我将不胜感激有关如何解决此问题的任何建议。