首先你必须创建一个 NSWindow 的子类。在 xcode 中执行:文件 -> 新文件 -> 目标 C 类。取一个类似“NSWindowMyEvents”的名称。这将创建 2 个文件:.h 和 .m,转到 NSWindowMyEvents.h 并进行如下声明:
@interface NSWindowMyEvents : NSWindow {
}
保存更改并编译(以确保 IB 读取新的标头 0,如果它已经打开)。
打开界面生成器并加载包含文档/主窗口的 nib/xib 文件。确保文件所有者的“窗口”出口设置为您的主窗口。单击您的主窗口(您想要获取事件的窗口)并将其类(通过身份检查器 cmd+6)设置为:NSWindowMyEvents 而不是现在的 NSWindow。
保存更改!
返回 xcode 和 NSWindowMyEvents.m 并粘贴以下代码:
- (void)keyDown:(NSEvent *)theEvent
{
NSLog(@"keyDown!");
if ([[NSApp currentEvent] modifierFlags] & NSCommandKeyMask)
{
NSLog(@"CommandKey Down!");
}
[super keyDown:theEvent];
}
将事件发送到您想要的超级 IF,以将事件传递给其余响应者链。您现在正在处理键盘事件。同样,您可以处理 NSWindowMyEvent.m 中的任何事件
希望有帮助....