Domanda

Tutti gli esempi che posso trovare di creare una notifica simile a questa:

[nc addObserver: selettore di auto: @selector (keyboardWillShow :) nome: oggetto UIKeyboardWillShowNotification: nil];

in cui oggetto è sempre stato impostato a zero. oggetto è il notificationSender, che è definito questa convenzione nella documentazione:

"L'oggetto di cui notifiche l'osservatore vuole ricevere,. Cioè, solo le notifiche inviati da questo mittente vengono consegnati all'osservatore Quando nullo, il centro di notifica non usa mittente una notifica per decidere se consegnarlo al osservatore ".

Vorrei ricevere la notifica della tastiera solo per una particolare visione del testo, quindi voglio dire addObserver, ma io non so cosa regalare per l'oggetto. Ho provato la variabile di uscita che è destinato alla visualizzazione del testo che mi interessa, ma che appena portato a mia ricevendo notifiche a tutti.

Qualche suggerimento?

È stato utile?

Soluzione

Il UIKeyboardWillShowNotification proviene da l'istanza finestra, e per tutti gli effetti è una notifica di "sistema". La tastiera è o mostrare o non mostrare, non è davvero qualcosa che è legato a un controllo specifico.

Se si vuole fare qualcosa quando un utente entra in un campo di testo specifico, probabilmente si dovrebbe controllare che nella delegato del campo di testo, invece.

Altri suggerimenti

In questo caso non è possibile ottenere la notifica solo per una particolare visione del testo, come il docu per UIKeyboardWillShowNotification dice: "L'oggetto di notifica è pari a zero.".

Si controlla nei tuoi impl keyboardWillShow se la vostra particolare visione del testo isFirstResponder.

Ho avuto due esigenze contrastanti - ho dovuto usare la notifica della tastiera perché avevo bisogno di ottenere l'altezza della tastiera, che sembra essere disponibile solo in questo modo, ma ho anche bisogno di sapere quale testo vista ero in, il che significava anche utilizzando il delegato textViewDidBeginEditing. Dopo molto fare in giro ho finalmente fatto ricorso per ottenere l'altezza della tastiera nel metodo di notifica e riporlo in una variabile di istanza, che è stato poi a disposizione da utilizzare nel metodo delegato (ho bisogno di scorrere la vista in modo che la visualizzazione del testo inferiore non è per lo più nascosto sotto la tastiera che quando iniziano a digitare). Un po 'poco elegante, ma funziona.

Grazie per i puntatori!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top