-makeFirstResponder: Nutzung
Ich bin ziemlich neu in cocoa-Programmierung, und ich möchte Fragen, ob jemand kann mir erklären, wie
-(BOOL)makeFirstResponder:(NSResponder *)responder;
Methode funktioniert. Ich war von der Planung über die Verwendung es für NSEvent
aber kann jemand mir zeigen, wie es zu implementieren?
Ich versuche, mit der NSResponder
Klasse, um mir ein arbeiten -keyDown
Methode.
- Sie nicht, es umzusetzen. Sie nennen es, wenn Sie wollen, etwas zu werden First Responder, oder die Ansicht, dass den Fokus hat. Zum Beispiel
[[myTextField window] makeFirstResponder:myTextField]
Du musst angemeldet sein, um einen Kommentar abzugeben.
NSResponder ist eine der grundlegenden Klassen in Cocoa. Jede Klasse, die auf Ereignisse reagieren kann, wie die Taste drückt oder die Menü-Befehle werden sollte, eine Unterklasse von NSResponder. Jeder responder verfolgt, ist es "next-responder", und jedes Fenster merkt sich das Objekt, das derzeit die "first responder". Wenn ein Ereignis passiert, in ein Fenster, eine Nachricht an die first responder. Wenn das Objekt verarbeitet die Nachricht, großer. Wenn nicht, übergibt er ihn an seinen nächsten-responder. Dies ist bekannt als die "responder-Kette."
In der Regel, Sie nicht Durcheinander zu viel mit der responder-chain-in Kakao. Der first responder ist meist ermittelt, indem die Aktionen des Benutzers, wie z.B. das klicken auf ein Steuerelement.
Macht es keinen Sinn zu 'verwenden es für NSEvent'. NSEvent nicht ein responder ist, sondern etwas, das es ermöglicht, Responder, Ihren job zu machen.
Wenn du mehr beschreiben klar, was Sie versuchen zu erreichen, ich bin sicher, wir können Sie in die richtige Richtung.
becomeFirstResponder
oderresignFirstResponder
; die Dokumentation sagt, dass für jeden von Ihnen “Verwenden Sie die NSWindowmakeFirstResponder:
Methode, nicht auf diese Methode, um ein Objekt der first responder. Nie aufrufen dieser Methode direkt."Müssen Sie normalerweise nicht umzusetzen
-makeFirstReponder:
Sie nennen es den Eingabefokus auf einen Blick. Was ist es, was Sie wirklich erreichen wollen?Das macht keinen Sinn. "Verwenden Sie" a-Klasse?
Wenn Sie möchten, zu reagieren, um wichtige Ereignisse, die Sie normalerweise tun sollte, dass in einer Ansicht, die sollten in der Lage sein, immer die first responder (siehe die NSView docs).
Siehe auch die Event-Handling Guide, die View Programming Guide, und das video zur session-145 ("Key Event Handling in Cocoa-Anwendungen") von der WWDC 2010 session-videos (die Sie sollten in der Lage sein, um durch Ihre Entwickler-Konto, auch wenn Sie nicht gehen auf der WWDC im letzten Jahr).