我有一个NSControl子类(它被配置为一个层托管视图,尽管我怀疑它是否相关)。我一直在尝试编写代码来获取和显示上下文菜单。但是,menuForEvent:和rightMouseDown:都不会被调用。知道是什么原因造成的吗?其它鼠标事件工作正常。
顺便说一句,我不确定是否必须自己调用menuForEvent:,但文档让它听起来好像不需要,这就是为什么我首先尝试覆盖它。无论如何,我至少应该期望rightMouseDown:被称为…
相关: AppKit似乎无法将Ctrl+Click识别为鼠标右键单击。大概我必须在mouseDown:中检查这个条件,然后手动调用rightMouseDown:。但是考虑到我所看到的怪异之处,有没有其他方法呢?
发布于 2009-09-07 10:23:20
您的子类中包含-(NSView *)hitTest:(NSPoint)aPoint方法了吗?这可能是鼠标事件正在被视图中的另一个元素拾取,这将阻止调用menuForEvent。
您认为应该自动调用menuForEvent的想法是正确的。
发布于 2009-09-07 06:58:18
从mouseDownCanMoveWindow检查它的返回值。文档不是非常清楚,但暗示如果此方法返回YES,视图(控件)将不会获得鼠标按下事件。
如果这是您的问题,请创建控件类的子类(如果它还不是子类),并实现该方法以返回NO。
https://stackoverflow.com/questions/1387334
复制相似问题