为什么这段代码不起作用:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSScrollWheelMask) handler:^(struct NSEvent *event){
[scrollEvent:event];
}];
}
- (void)scrollEvent:event {
NSLog( @"scroll" );
}
它说“‘scrollEvent’未声明”。
我刚刚学习 objc 和 cocoa,所以我认为这只是一个简单的错误。
最佳答案
您的代码似乎有一些错误。我已经清理了一些,请看下面。
- (void) applicationDidFinishLaunching:(NSNotification *) aNotification {
[NSEvent addGlobalMonitorForEventsMatchingMask: NSScrollWheelMask handler:^(NSEvent *event){
[self scrollEvent: event];
}];
}
- (void) scrollEvent: (NSEvent *) event {
NSLog( @"scroll" );
}
总结:
- 您对该 block 的论点应该是
NSEvent *
,而不是struct NSEvent *
. - 您对 scrollEvent 的调用需要发送给自己。
- 您的 scrollEvent 实现有一个不正确的签名。
希望对您有所帮助,并祝该计划顺利。
关于objective-c - 从 NSEvent block 调用 Cocoa ObjC 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837024/