Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Objective c 对关键事件作出反应_Objective C_Macos_Cocoa - Fatal编程技术网

Objective c 对关键事件作出反应

Objective c 对关键事件作出反应,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我想这样做,若用户按下键盘上的“返回”键,应用程序就必须做些什么。我尝试以下方法: - (void)keyDown: (NSEvent *) event { if ([event keyCode] == 36) { [self doSmthFunction]; } } 但当我按下“回车”键时,我只听到哔哔声 完整代码 KeyEventController.m #import "KeyEventController.h" #inclu

我想这样做,若用户按下键盘上的“返回”键,应用程序就必须做些什么。我尝试以下方法:

- (void)keyDown: (NSEvent *) event {
        if ([event keyCode] == 36) {  
            [self doSmthFunction];
        }
}
但当我按下“回车”键时,我只听到哔哔声


完整代码

KeyEventController.m

#import "KeyEventController.h"
#include "myCustomClass.h"

@implementation KeyEventController
- (void)keyDown: (NSEvent *) event {
        if ([event keyCode] == 36) {
                NSLog(@"log");
        }
}
@end
KeyEventController.h:

#import <Cocoa/Cocoa.h>

@interface KeyEventController : NSResponder 

@end
#导入
@接口KeyEventController:NSResponder
@结束

您可能必须重写acceptsFirstResponder,然后返回YES。此外,您可能需要在视图中单击(或您的子类中的任何内容),使其不发出哔哔声。我已经对此进行了测试,有时似乎有必要执行这些操作,有时则没有。

您可能必须覆盖acceptsFirstResponder,并返回YES。此外,您可能需要在视图中单击(或您的子类中的任何内容),使其不发出哔哔声。我已经对此进行了测试,有时似乎有必要执行这些操作,有时则没有。

这段代码在哪个类中?如果该代码位于NSResponder的子类中,则该代码应能正常工作。它是NSResponder的子类。您需要进一步解释如何设置应用程序。您是否在IB中为您的类设置了对象?您是否完全用代码创建了一些东西?你的代码没有问题,问题一定是在你的应用程序的结构中,或者是缺少连接。这段代码在哪个类中?如果该代码位于NSResponder的子类中,则该代码应能正常工作。它是NSResponder的子类。您需要进一步解释如何设置应用程序。您是否在IB中为您的类设置了对象?您是否完全用代码创建了一些东西?你的代码没有问题,问题一定出在你的应用程序的结构上,或者是缺少连接。