문제

이것은 이상한 문제이지만이 문제를 해결하는 방법에 당황합니다. 사용자 지정 UITableViewCell이있는 UITableView가 있습니다. 각 UITableViewCell에는 2 개의 UITextFields가 있으며 각 UITextFieldtextFieldDidEndEditing 이벤트를 처리하는 대리자에 연결됩니다. 이것은 한 가지 경우를 제외하고는 완벽하게 작동합니다.

문제

화면에도 '저장'버튼이 있으며 사용자가 유전자 태그 코드를 편집하고 화면의 다른 곳을 클릭하지 않고 '저장'버튼을 직접 클릭하면 문제가 발생합니다. 이러한 이벤트에서 UITextField 메서드는 saveAction 이벤트 전에 호출되며 그 결과 사용자의 마지막 편집이 손실됩니다.

NSLog 문을 사용하여 디버깅을 시도한 결과 textFieldDidEndEditing가 실제로 호출되는 동안 textFieldDidEndEditing 이벤트 이후에 호출된다는 것을 발견했습니다.

saveAction에서 textFieldDidEndEditing 이벤트를 호출하는 것에 대해 생각했지만 어떤 saveAction가 편집되고 있는지 알 수 없기 때문에 말이되지 않았습니다.

어떤 제안이라도 대단히 감사합니다.

도움이 되었습니까?

해결책

뷰 컨트롤러에서 –textFieldDidBeginEditing : delegate 메소드가 호출 될 때 활성화되는 텍스트 필드를 기록 할 수 있습니다.

활성 텍스트 필드를 가리키는 할당 된 속성이 있고 -saveAction에서 -resignFirstResponder를 보냅니다.

헤더 : 라코 디스

m 파일 : 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top