UITableView
을 구현하는 iOS 6 기반 프로젝트가 있습니다. 표보기의 각 셀에는 UITextField
이있어 사용자가 정보를 입력 할 수 있습니다. 사용자가 텍스트 필드를 지우거나 필드에서 모든 입력을 삭제하면 (예 : [textfield length] == 0
) 다른 셀 (텍스트 필드)을 탭하면 테이블 뷰에서 이전 셀 (텍스트 필드)이 비어있어 삭제됩니다. 빈 셀이 테이블보기에 누적됩니다. 그러나사임을 거부 한 첫 번째 응답자가 포함 된 행을 삭제하려고 시도했습니다.
- (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];
}
}
코드는 콘솔에 다음과 같은 메시지 응용 프로그램 충돌을 해고 :
이
모든 텍스트 필드에 대한UIControlEventEditingDidEnd
이벤트를 발생시킵니다
-textFieldEditingDidEnd:
라는 방법을 사용하여 수행됩니다
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempt to delete row containing first responder that refused to resign'
내가 전에이 메시지를 본 적이 없다, 웹을 검색 할 때 특히 많은 참조가 될 것 같지 않습니다. 이 문제를 해결하는 방법에 대한 제안 사항에 감사드립니다.
시도 퍼팅 [에 textField resignFirstResponder]; 행을 삭제하기 전에 해당 정보가 도움이되는지 확인하십시오. – Bergasms
고마워,하지만 전에 시도. 안돼, 같은 문제 야. – Skoota