9

일반적으로 작동하는 검색 창이 있습니다. 문제는 iPhone에서 테스트 할 때 자동 고침이 시작될 때 발생합니다. 검색 막대에 텍스트 길이가 4 이상인 텍스트가있는 경우 검색 막대를 설정 한 다음 searchResults 배열에 항목을 넣기 시작합니다. 자동 고침에서 제안이 있고 그것을 무시하고 배열에서 무언가를 선택하면 응용 프로그램이 충돌합니다. 필자는 행 선택 이전에 자동 수정 된 단어가 선택되었다는 오류를 추적 했으므로 (둘 다 완료 됨) 액세스하려는 것으로 생각되는 searchResults 배열은 더 이상 유효하지 않습니다.didSelectRowAtIndexPath를 눌렀을 때 UISearchBar의 자동 고침이 방해받습니다.

예를 들어 검색 바에 "demp"를 넣습니다. 자동 고침은 "데모"를 제안합니다. 그 사이에, 수색은 그것에서 "dempster"를 가진 결과의 낱단을 돌려 보낸다. 나는 첫번째를 선택한다. 이렇게하면 검색은 "데모"아래에서 다시 검색하고 원래 배열을 지 웁니다. 배열을 다시 채울 수 없도록 검색을 위해 서버를 찾습니다. 그런 다음 didSelectRowAtIndexRow 메서드가 트리거되고 배열에 아무 것도없고 충돌이 발생합니다.

의견이 있으십니까? 미리 감사드립니다.

+0

동일한 문제가있었습니다. 이것이 UISearchBar의 버그라고 말할 수 있습니다. – hpique

답변

16

검색 막대를 사용하고 있으므로 자동 수정이 없어야하며 사람들이 찾고있는 것을 찾고 싶습니다. 일부 사전에서 찾지 못하는 부분이 아닙니다. 간단히 설정

searchBar.autocorrectionType = UITextAutocorrectionTypeNo; 

문제가 해결됩니다.

+0

저에게는 충분히 좋습니다! 고맙습니다! –

+0

자동 수정해서는 안된다는 것에 동의하지 않습니다. 그것이 iOS에있는 것처럼 방해가되지 않는다면 유용 할 것입니다. – hpique