2010-07-01 4 views
10

Ich habe gesehen this question, aber die Frage ist, wie man wissen, welche TextView der Ersthelfer ist? This question looked promising um herauszufinden, der erste Responder, aber es stellt sich heraus, dass es private APIs aufruft. Gibt es eine Möglichkeit, die Tastatur zu verstecken oder den Ersthelfer als den, der-die-Tastatur hat, herauszufinden?Eingabe-Tastatur auf dem iPhone ausblenden, ohne den Erstbearbeiter zu kennen?

+0

mögliche Duplikate von [Einfache Möglichkeit, Tastatur zu verwerfen?] (Http://stackoverflow.com/questions/741185/easy-way-to-dismiss-keyboard) – Senseful

+0

Siehe auch [Tastatur bei Berührung außerhalb des Textfelds berühren] (http://stackoverflow.com/questions/11274119/dismiss-keyboard-on-touch-anywhere-outside-uitxtfield) – ToolmakerSteve

Antwort

25

Es ist einfach:

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

einen Blick auf UIView Class Reference.

+1

Ich muss dies überprüfen, bevor Sie es als akzeptiert markieren. Auf der anderen Seite, wenn Sie mit einigen Dokumenten verbunden sind, wäre das für mich und SO besser. –

+0

UIWindow ist eine Unterklasse von UIView; Er erbt die Methode 'endEditing' von UIView. –

+0

Danke, tolle Sachen. –

4

[textView isFirstResponder] sollte Ihnen sagen, wenn es der Ersthelfer ist. Ich denke, du könntest einfach alle Textfelder in deiner Klasse durchlaufen, um zu sehen, ob es der Ersthelfer ist.

Oder Sie könnten responseFirstResponder auf jedem TextField aufrufen, und es wird immer noch funktionieren.

+0

+1, das hilft, obwohl ich für eine bessere Antwort halte. –

+0

Eigentlich auf den zweiten Gedanken, der zweite Teil Ihrer Antwort macht mir klar, dass dank meiner gut gestalteten App :) kann ich das tun. –

3

Ich glaube, dass Sie etwas auswählen sollten, um der Ersthelfer zu werden, etwas, das wahrscheinlich nichts alleine macht, und rufen Sie -[UIResponder becomeFirstResponder] darauf an. Dies würde gut mit einem UIViewController oder UIWindow funktionieren (was ich durch -[UIView window] bekommen kann, denke ich), weil diese die ähnlichsten Responder-Ketten hätten und den aktuellen firstResponder seinen FirstResponder-Status verlieren ließen, die Tastatur abtun würden, aber auch nicht Rufen Sie die Tastatur auf, da dies kein UITextField wäre.

Verwandte Themen