Meine App stürzt ab, wenn ich versuche, auf UISearchBar
rückgängig zu machen. In meiner app habe ich Code ein ‚%‘ Zeichen auf der Suchleiste zu verhindern Eingabe und dies zu tun ersetzt es ein% auf @ „: abc“ in textDidChange Verfahren wie unten"[NSBigMutableString substringWithRange:]: Bereich {0, 10} außerhalb der Grenzen; Zeichenfolge Länge 9" Fehler mit Rückgängig
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
self.searchBar.text = [searchText stringByReplacingOccurrencesOfString:@"%" withString:@""];
}
Also, wenn ich Text eingeben“ % xyz ", der letzte in der Suchleiste sichtbare Text wäre 'abcxyz'. Nein, wenn ich auf "Rückgängig" klicke, sehe ich, dass "xyz" gelöscht wird und ich immer noch "abc" in der Suchleiste sehe, anstatt "abcxyz" auf einmal zu löschen.
Jetzt, wenn ich wieder aufheben, um 'abc' zu löschen, stürzt meine App mit [NSBigMutableString substringWithRange:]: Range out of bounds
Fehler ab.
Ich gehe davon aus, dass, obwohl '%' durch @ "" ersetzt wird, der Undo-Manager es immer noch halten kann und daher der Bereich außerhalb der Grenzen liegt.
Ich versuchte [searchBar.undoManager removeAllActions];
in textDidChange
, nachdem ich% mit @ "ersetzen", aber es hat nicht geholfen. Hier ist der Code:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
self.searchBar.text = [searchText stringByReplacingOccurrencesOfString:@"%" withString:@""];
[searchBar.undoManager removeAllActions];
}
Frage: Wer vor ähnliches Problem konfrontiert? Wie gehe ich mit dem Rückgängigmachen um?
Obwohl removaAllActions für mich gearbeitet. Wir haben uns schließlich entschieden, den Shake einfach auszuschalten, um die App rückgängig zu machen. – SuperGuyAbe