Wie bekomme ich den aktuellen First Responder vom Window Controller in Cocoa?

8

Ich möchte die First-Responder-Ansicht in einem Fenster finden. Um dies zu tun, möchte ich eine Kategorie wie folgt implementieren:

%Vor%

Der obige Code basiert auf dieser Frage / Antwort zu SO: Erhalte den aktuellen Ersthelfer ohne Verwendung einer privaten API .

Das Problem besteht vielleicht darin, dass NSResponder keine isFirstResponder-Methode wie UIResponder hat. Was ist das Äquivalent für NSResponder?

Wenn die obige Methode wie oben implementiert ist, bekomme ich natürlich die Debug-Nachricht: "'NSView' antwortet möglicherweise nicht auf 'isFirstResponder'".

Wie mache ich findFirstResponder in Cocoa arbeiten?

Weitere Informationen: Ich möchte später die obige Methode in meinem Fenster-Controller in irgendeiner Weise verwenden wie:

%Vor%     
A A 10.06.2012, 13:57
quelle

2 Antworten

29

Was ist falsch mit -[NSWindow firstResponder] , was den First Responder direkt zurückgibt?

    
Ken Thomases 10.06.2012, 16:11
quelle
2

Wenn Sie nur den Ersthelfer haben wollen, dann verwenden Sie die Methode firstResponder von NSWindow .

Sie können die Methode NSApplications targetForAction: verwenden, wenn Sie den ersten Responder für eine bestimmte Aktion (wie mouseDown: ) möchten

    
diederikh 10.06.2012 14:34
quelle