我知道这个问题以前被问过很多次,但对我来说没有任何作用。下面的代码根本不会做任何事情。
- (void) mouseDown:(NSEvent*)event {
NSLog(@"It worked!");
}
我尝试了很多不同的方法来使其发挥作用,包括创建自定义NSEvents
这样:
NSEvent *someEvent;
- (void) mouseDown:(NSEvent*)someEvent {
NSLog(@"It worked!");
}
这是我的 .h 文件:
@interface test : NSWindow <NSWindowDelegate> {
}
有人会解释如何让它做某事吗?
确保你的类继承自NSWindow
并符合<NSWindowDelegate>
协议。否则,这只是一个碰巧被命名的方法mouseDown
,并且没有人会调用它。
Update:更改头文件,使其看起来像这样:
@interface test : NSWindow <NSWindowDelegate> {
}
换句话说,don't放一个原型mouseDown
在接口定义中,或在其他任何地方.h
file.
在您的实施文件中(.m
)只放方法:
- (void) mouseDown:(NSEvent*)someEvent {
NSLog(@"It worked!");
}
假设您已在设备中打开日志记录(您确定可以读取NSLog
程序中其他地方的输出?),您应该看到“它成功了!”印在那里。
无论如何,我都不是 obj-C 专家,但我认为通过将mouseDown
接口定义中的原型,您基本上是在创建自己的自定义mouseDown
隐藏“真实”的方法。这向编译器表明它应该not打电话给你的mouseDown
窗口单击的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)