I NSAttributedString Stile einen UITextField nach der Verarbeitung einen neuen Texteingabe Tastendruck per Tastendruck anzuwenden versuchen. Das Problem ist, dass der Cursor jedes Mal, wenn ich den Text ersetze, bei jeder Änderung das letzte Mal springt. Hier ist meine aktuelle Ansatz ...Format UITextField Text ohne Cursor-Bewegung des mit dem Ende
empfangen und anzeigen Text Änderung sofort (gleiche Problem gilt, wenn ich falsch zurückkehren und tun das Ersetzen von Text manuell)
func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool {
let range:NSRange = NSRange(location: range.location, length: range.length)
let newString = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string);
return true
}
ich zum UITextFieldTextDidChangeNotification Benachrichtigung abonniert. Dies löst das Styling aus. Wenn der Text geändert wird, ersetze ich es (NSString) mit der formatierten Version (NSAttributedString) mithilfe einiger Format() -Funktion.
func textFieldTextDidChangeNotification(userInfo:NSDictionary) {
var attributedString:NSMutableAttributedString = NSMutableAttributedString(string: fullString)
attributedString = format(textField.text) as NSMutableAttributedString
textField.attributedText = attributedString
}
Styling funktioniert gut so. Nach jedem Textersatz springt der Cursor jedoch an das Ende der Zeichenfolge. Wie kann ich dieses Verhalten ausschalten oder den Cursor manuell dorthin zurückbewegen, wo die Bearbeitung begonnen hat? ... oder gibt es eine bessere Lösung, um den Text während der Bearbeitung zu formatieren?
Oh, perfekt. Es funktioniert so. Danke – Bernd