UISearchBar
에서 실행 취소하려고하면 내 앱이 다운됩니다. 내 응용 프로그램에서 나는 검색 창에 '%'기호를 입력 방지 코드를 가지고이 일 것이에 %를 대체 @ "ABC"아래 textDidChange 방법에 따라서"[NSBigMutableString substringWithRange :] 범위 초과 {0, 10} 문자열 길이 9"실행 취소 오류
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
self.searchBar.text = [searchText stringByReplacingOccurrencesOfString:@"%" withString:@""];
}
내가 텍스트를 입력하면 " % xyz "이면 검색 막대에 표시되는 마지막 텍스트는 'abcxyz'입니다. 아니요, 실행 취소를 클릭하면 'xyz'가 지워지고 한 번에 'abcxyz'를 지우지 않고 검색 창에 'abc'가 표시됩니다.
이제 'abc'를 지우려면 다시 실행 취소를 클릭하면 [NSBigMutableString substringWithRange:]: Range out of bounds
오류로 인해 앱이 다운됩니다.
'%'가 @ ""로 대체 되더라도 실행 취소 관리자가 여전히이를 보유하고 있으므로 범위가 범위를 벗어나고 있다고 가정합니다.
%를 @ ""로 바꾼 후에 textDidChange
에 [searchBar.undoManager removeAllActions];
을 시도했지만 도움이되지 않았습니다. 여기 코드는 다음과 같습니다
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
self.searchBar.text = [searchText stringByReplacingOccurrencesOfString:@"%" withString:@""];
[searchBar.undoManager removeAllActions];
}
질문 : 누구 이전에 유사한 문제에 직면? 실행 취소는 어떻게 처리합니까?
는 removaAllActions은 나를 위해 일하지만. 우리는 마침내 흔들어서 앱 실행을 취소했습니다. – SuperGuyAbe