2010-07-01 13 views
10

Ho visto this question, ma la domanda è come sapere quale textView è il primo risponditore? This question looked promising per capire il primo risponditore, ma risulta che chiama le API private. C'è un modo per nascondere la tastiera o per capire il primo interlocutore come quello-che-ha-la-tastiera?Nascondere la tastiera di input su iPhone senza conoscere il primo risponditore?

+0

possibile duplicato di [modo facile respingere tastiera?] (Http://stackoverflow.com/questions/741185/easy-way-to-dismiss-keyboard) – Senseful

+0

anche vedere [Congeda tastiera a toccare un punto qualsiasi al di fuori del campo di testo] (http://stackoverflow.com/questions/11274119/dismiss-keyboard-on-touch-anywhere-outside-uitextfield) – ToolmakerSteve

risposta

25

E 'facile:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES]; 

un'occhiata a UIView Class Reference.

+1

Dovrò verificare questo prima di contrassegnarlo come accettato. D'altra parte, se ti colleghi ad alcuni documenti, sarebbe meglio per me e SO. –

+0

UIWindow è una sottoclasse di UIView; eredita il metodo 'endEditing' da UIView. –

+0

Grazie, grandi cose. –

4

[textView isFirstResponder] dovrebbe dirti se è il primo risponditore. Immagino che tu possa semplicemente scorrere tutti i campi di testo della tua classe per verificare se è il primo a rispondere.

Oppure puoi semplicemente chiamare resignFirstResponder su ogni campo di testo, e funzionerà ancora.

+0

+1, che aiuta anche se mi sto dando da fare per una risposta migliore. –

+0

A dire il vero, la seconda parte della tua risposta mi fa capire che grazie alla mia app ben progettata :), posso farlo. –

3

Credo che dovresti scegliere qualcosa per diventare il primo risponditore, qualcosa che probabilmente non fa nulla da solo, e chiama -[UIResponder becomeFirstResponder] su di esso. Ciò funzionerebbe bene con un UIViewController o UIWindow (che è possibile ottenere attraverso -[UIView window], penso) perché questi avrebbero le catene di risposta più simili e renderebbero il primo FirstResponder perdente il suo stato FirstResponder, ignorando la tastiera, ma non lo farebbero portare la tastiera, in quanto non sarebbe un UITextField.

Problemi correlati