Nella mia app per iPad, ho notato un comportamento diverso tra iOS 6 e iOS 7 con UITextFields.Barra spaziatrice UITextField allineata a destra non fa avanzare il cursore in iOS 7
creo l'UITextField come segue: "ciao"
UIButton *theButton = (UIButton*)sender;
UITextField *textField = [[UITextField alloc] initWithFrame:[theButton frame]];
[textField setDelegate:self];
[textField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
[textField setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight];
textField.textAlignment = UITextAlignmentRight;
textField.keyboardType = UIKeyboardTypeDefault;
...
[textField becomeFirstResponder];
In iOS 6, quando si digita "ciao mondo", il cursore avanza uno spazio vuoto quando ho colpito la barra spaziatrice dopo
In iOS 7, il cursore non avanza quando premo la barra spaziatrice. Tuttavia, quando digito "w" in "world", mostra lo spazio e il w.
Come si può far avanzare il cursore quando si colpisce la barra spaziatrice in iOS 7?
Aggiornamento:
Se cambio la textField.textAlignment a UITextAlignmentLeft, allora lo spazio appare in iOS 7. Vorrei tenerlo allineamento a destra, se possibile.
Grazie per questo! – Morrowless
Funziona solo per aggiungere/eliminare un carattere alla volta; quindi non quando si incolla o si elimina del testo con più spazi al loro interno. E questo può essere fatto un po 'più semplice; guarda la mia risposta –
Se si restituisce 'NO' da' textField: shouldChangeCharactersInRange: replacementString: 'si potrebbe rompere le cose. Per favore vedi [la mia risposta] (http://stackoverflow.com/a/22512184/1248175) per un metodo più sicuro. – rednaw