Grazie tanto per questo; funziona alla grande Tuttavia, il codice come presentato ha 2 limitazioni come li ho sperimentato:
1) La vista in fase di riposizionamento semplicemente scorre fuori dello schermo, piuttosto che il ridimensionamento per adattarsi allo spazio disponibile dopo la tastiera appare
2) Ripetizione le notifiche dovute al cambio di campo di testo continuano ad applicare la modifica del frame, facendo sì che la vista voli in modo incrementale dallo schermo.
La causa è che quanto sopra è una modifica relativa al fotogramma corrente della vista piuttosto che un ridimensionamento relativo alla tastiera. Qui ci sono due linee modificate di codice che risolvere questo problema:
In liftMainViewWhenKeybordAppears :, ridimensionare piuttosto che riposiziona, relativi alla tastiera:
keyboardFrame = [self.view.window convertRect:keyboardFrame toView:self.view.superview];
CGRect superviewFrame = [self.view.window convertRect:self.view.superview.frame toView:self.view];
[self.view setFrame:CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
superviewFrame.size.height - keyboardFrame.size.height)];
In returnMainViewToInitialposition :, modificare l'animazione a questo SETFRAME: (essenzialmente simile alla trasformazione dell'identità).
[self.view setFrame:CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
keyboardFrame.origin.y + keyboardFrame.size.height)];
fonte
2010-05-04 17:49:53
duplicati di http://stackoverflow.com/questions/1247113/iphone-keyboard-covers-text-field/1533847#1533847 – cidered
Non un duplicato. Questa domanda riguarda la barra degli strumenti e non il campo di testo. – phatmann