sto cercando di applicare NSAttributedString stili per un UITextField dopo l'elaborazione di una nuova voce di testo, battitura dalla battitura. Il problema è che ogni volta che sostituisco il testo il cursore salterà proprio alla fine di ogni cambiamento. Ecco il mio approccio attuale ...Formattare il testo UITextField senza dover spostare il cursore alla fine
ricezione e cambio testo visualizzato immediatamente (stesso problema vale anche quando return false e fare la sostituzione del testo manualmente)
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
}
Mi sono iscritto alla notifica UITextFieldTextDidChangeNotification. Questo innesca lo stile. Quando il testo viene modificato, lo sostituisco (NSString) con la versione formattata (NSAttributedString) utilizzando una funzione di formattazione().
func textFieldTextDidChangeNotification(userInfo:NSDictionary) {
var attributedString:NSMutableAttributedString = NSMutableAttributedString(string: fullString)
attributedString = format(textField.text) as NSMutableAttributedString
textField.attributedText = attributedString
}
Lo styling funziona così. Tuttavia, dopo ogni sostituzione del testo, il cursore salta alla fine della stringa. Come posso disattivare questo comportamento o spostare manualmente il cursore indietro dove ha iniziato la modifica? ... o c'è una soluzione migliore per modellare il testo durante la modifica?
Oh, perfetto. Funziona così. Grazie – Bernd