#import "AppDelegate.h"
@interface AppDelegate ()
@property (weak) IBOutlet NSWindow *window;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
- (void)keyDown:(NSEvent *)theEvent {
//
}
- (IBAction)entrer:(NSTextField *)sender {
[super keyDown];
}
}
@end
我想调用上面的keyDown方法,但是我有一个错误 没有可见的NSObject接口声明选择器'keyDown' 如何从entrer方法调用我的void keyDown方法?
答案 0 :(得分:1)
-keyDown:
方法接受一个参数。因此,它的名称为-keyDown:
,带冒号。冒号是名称的必需部分,参数是调用方法的必需部分。
您可以使用以下方式调用它:
[self keyDown:nil];
但您必须确保-keyDown:
方法可以处理nil
参数。
或者,您可以获取或构造NSEvent
的实例并传递该实例。确切地说,如何做到这一点取决于您通过致电-keyDown:
来尝试完成的任务。
这让我们想到呼叫-keyDown:
很奇怪。该方法通常由框架调用,以请求对象处理按键事件。你通常不会自己打电话。这就是为什么在NSEvent
传递给它的地方不明显的部分原因,因为你在正常的事件处理机制之外调用它。