So entfernen Sie das letzte Unicode-Symbol aus NSString
Ich habe eine benutzerdefinierte Tastatur implementiert, die einem Textfeld zugeordnet ist. Wenn der Benutzer also die Löschtaste drückt, entferne ich das letzte Zeichen aus der Zeichenfolge und aktualisiere den aktuellen Textfeldtext manuell.
NSRange range = NSMakeRange(currentTextFieldString.length-1, 1);
[currentTextFieldString replaceCharactersInRange:range withString:@""];
So weit, ist es gut.
Das Problem ist nun, dass der Benutzer die Möglichkeit hat, einige spezielle Unicode-Symbole einzugeben, diese sind nicht 1 Byte, sie können auch 2 Byte sein, jetzt muss ich beim Drücken der Löschtaste das gesamte Symbol entfernen, aber wenn ich Befolgen Sie die oben beschriebene Vorgehensweise, muss der Benutzer die Löschtaste zweimal drücken.
Hier, wenn ich es tue:
NSRange range = NSMakeRange(currentTextFieldString.length-2, 2);
[currentTextFieldString replaceCharactersInRange:range withString:@""];
es funktioniert gut, aber dann werden die normalen Zeichen, die nur 1 Byte sind, zweimal auf einmal gelöscht.
Wie gehe ich mit solchen Szenarien um?
Danke im Voraus.
BEARBEITEN:
Es ist seltsam, dass wenn ich zur iPhone-Tastatur wechsle, beide Fälle entsprechend behandelt werden. Es muss einen Weg geben, es gibt etwas, das mir fehlt, aber ich kann nicht herausfinden, was.