Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mac上通过按键检测按键(objective-c)_Objective C_Macos - Fatal编程技术网

如何在mac上通过按键检测按键(objective-c)

如何在mac上通过按键检测按键(objective-c),objective-c,macos,Objective C,Macos,我正在viewcontroller.m中编写一个keyDown,但它不起作用 这是我的代码: -(BOOL)acceptsFirstResponder{ return YES; } -(void)keyDown:(NSEvent *)event{ NSLog(@"%hu",event.keyCode); } 您总是在NSView类而不是NSViewController类中接收按键按下和鼠标按下事件。 创建NSView类的子类,假设它是TestView,并将Storyboard/Xib

我正在viewcontroller.m中编写一个keyDown,但它不起作用

这是我的代码:

-(BOOL)acceptsFirstResponder{
  return YES;
}

-(void)keyDown:(NSEvent *)event{
  NSLog(@"%hu",event.keyCode);
}

您总是在NSView类而不是NSViewController类中接收按键按下和鼠标按下事件。

创建NSView类的子类,假设它是TestView,并将Storyboard/Xib中NSViewController的嵌入式NSView的默认类更改为TestView

另外,总是建议将事件转发到超类,尤其是您不想处理的超类

-(void)keyDown:(NSEvent *)event
{
    NSLog(@"%hu",event.keyCode);

    [super keyDown:event];
}

抱歉,我是初学者,如何创建NSView类?1。使用Xcode文件菜单->新建->文件。。。选项否则,请使用Command+N键盘快捷键将新文件添加到源。然后,在Source下选择“macOS”和“Cocoa类”,然后按“Next”。现在,将默认类从NSObject更改为NSView,将语言更改为“Objective-C”,然后按Next将该类添加到视图中。