objective-c - -makeFirstResponder : usage

标签 objective-c cocoa nsresponder

我对 cocoa 编程相当陌生,我想问是否有人可以向我解释如何 -(BOOL)makeFirstResponder:(NSResponder *)responder; 方法有效。我计划将它用于 NSEvent 但有人可以告诉我如何实现它吗?

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

最佳答案

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

通常,您不会对 Cocoa 中的响应者链造成太多困惑。第一响应者主要由用户操作决定,例如单击控件。

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

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

关于objective-c - -makeFirstResponder : usage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5517968/

相关文章:

ios - 单击自定义 UITableViewCell 上的按钮会抛出 EXC_BAD_ACCESS

objective-c - iOS - 我如何创建一个我的所有 Controller 都可以调用的 "utility"类

python - 在 XCode 4 中运行 PyObjC 模板时发生泄漏

swift - NSView/NSResponder 智能放大 :

macos - 为什么应该 -[NSTextInputClient doCommandBySelector :] not pass the event up the responder chain?

objective-c - 查看 interpretKeyEvents : but pass unwanted ones up the responder chain?

ios - 苹果 map 认证

iphone - 如何知道用户更喜欢英里还是公里?

xcode - Interface Builder 中带有自动 NSNumberFormatter 的 NSTextField

iphone - 像 iPhone 的电子邮件应用程序一样对图像进行动画处理