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中为您的类设置了对象?您是否完全用代码创建了一些东西?你的代码没有问题,问题一定出在你的应用程序的结构上,或者是缺少连接。