Objective c -makeFirstResponder:用法

Objective c -makeFirstResponder:用法,objective-c,cocoa,nsresponder,Objective C,Cocoa,Nsresponder,我对cocoa编程相当陌生,我想问一下是否有人可以向我解释如何使用cocoa -(BOOL)makeFirstResponder:(nsrresponder*)响应器方法有效。我计划将它用于NSEvent,但有人能告诉我如何实现它吗 我正在尝试使用NSResponder类获得一个有效的-keyDown方法。您通常不会实现-makeFirstReponder:,您可以调用它将输入焦点设置为视图。您真正想要实现的是什么?您通常不会实现-makeFirstReponder:,您可以调用它来设置视图的输

我对cocoa编程相当陌生,我想问一下是否有人可以向我解释如何使用cocoa
-(BOOL)makeFirstResponder:(nsrresponder*)响应器方法有效。我计划将它用于
NSEvent
,但有人能告诉我如何实现它吗


我正在尝试使用
NSResponder
类获得一个有效的
-keyDown
方法。

您通常不会实现
-makeFirstReponder:
,您可以调用它将输入焦点设置为视图。您真正想要实现的是什么?

您通常不会实现
-makeFirstReponder:
,您可以调用它来设置视图的输入焦点。您真正想要实现的是什么?

NSResponder是Cocoa中的基本类之一。任何可以响应按键或菜单命令等事件的类都应该是NSResponder的子类。每个响应者跟踪其“下一个响应者”,每个窗口跟踪当前为“第一个响应者”的对象。当窗口中发生事件时,会向第一响应者发送消息。如果该对象处理消息,那就太好了。如果没有,它会将其传递给下一个响应者。这被称为“响应链”

通常情况下,您不会对可可中的响应链造成太多干扰。第一响应者主要由用户操作决定,例如单击控件

“将其用于NSEvent”是没有意义的。NSEvent不是响应者,而是使响应者能够完成其工作的东西


如果您能更清楚地描述您试图实现的目标,我相信我们可以为您指明正确的方向。

NSResponder是Cocoa中的基本类之一。任何可以响应按键或菜单命令等事件的类都应该是NSResponder的子类。每个响应者跟踪其“下一个响应者”,每个窗口跟踪当前为“第一个响应者”的对象。当窗口中发生事件时,会向第一响应者发送消息。如果该对象处理消息,那就太好了。如果没有,它会将其传递给下一个响应者。这被称为“响应链”

通常情况下,您不会对可可中的响应链造成太多干扰。第一响应者主要由用户操作决定,例如单击控件

“将其用于NSEvent”是没有意义的。NSEvent不是响应者,而是使响应者能够完成其工作的东西

如果你能更清楚地描述你想要实现的目标,我相信我们能为你指明正确的方向

我正在尝试使用NSResponder类获得一个有效的keyDown方法

那没有道理。“使用”一个类

如果您想对关键事件做出响应,通常应该在能够成为第一响应者的视图中进行响应(请参阅)

另请参阅中会话145(“Cocoa应用程序中的关键事件处理”)的、和视频(即使您去年没有访问WWDC,您也可以通过您的开发人员帐户访问)

我正在尝试使用NSResponder类获得一个有效的keyDown方法

那没有道理。“使用”一个类

如果您想对关键事件做出响应,通常应该在能够成为第一响应者的视图中进行响应(请参阅)


另请参阅中会话145(“Cocoa应用程序中的关键事件处理”)的、和视频(即使您去年没有访问WWDC,您也应该能够通过您的开发人员帐户访问该视频)。

您没有实现它。当你想让某样东西成为第一反应者,或者有焦点的视图时,你就称之为第一反应。例如,
[[myTextField窗口]makeFirstResponder:myTextField]
您没有实现它。当你想让某样东西成为第一反应者,或者有焦点的视图时,你就称之为第一反应。例如,
[[myTextField window]makeFirstResponder:myTextField]
您不使用(调用)
成为firstresponder
辞职firstresponder
;文档中对每种方法都说“使用NSWindow
makeFirstResponder:
方法,而不是此方法,使对象成为第一响应者。永远不要直接调用此方法。”@Peter Hosey,你说得对!也许我在Cocoa Touch上花了太多时间。你不使用(呼叫)
成为第一响应者
辞职第一响应者
;文档中对每种方法都说“使用NSWindow
makeFirstResponder:
方法,而不是此方法,使对象成为第一响应者。永远不要直接调用此方法。”@Peter Hosey,你说得对!也许我在Cocoa Touch上花了太多时间。谢谢。我想这会有用的!我之所以这么做,是因为在另一个论坛上,他们说我需要使用NSResponder类,才能使keyDown方法发挥作用。谢谢,我认为这会起作用!我之所以这样做是因为在另一个论坛上,他们说我需要使用NSResponder类,以使keyDown方法正常工作。