【问题标题】:Right mouse click detection in NSTextFieldCellNSTextFieldCell 中的鼠标右键检测
【发布时间】:2014-05-26 13:16:08
【问题描述】:
我正在使用 NSTextFieldCell 的子类,并尝试在 NSTextFieldCell 子类上执行鼠标右键单击时显示上下文菜单。
MouseDown 和 rightMouseDown 不仅适用于 NSTextFieldCell 子类的对象,对于所有其他自定义子类,例如 NSButtonCell 的对象,一切正常。
有人可以帮忙解决这个问题吗?
谢谢!
【问题讨论】:
标签:
objective-c
cocoa
mouseevent
nstextfieldcell
【解决方案1】:
NSCell 有一个可设置的 -(NSMenu*)menu 属性,可用于定义上下文菜单(重载 -menu 不够好)。一个 NSCell 与一个 NSControl 相关联。 NSControl (在你的情况下是 NSTextField 的实例)是 NSView 的超级,它有一个可设置的 -(NSMenu*)defaultMenu 属性来定义上下文菜单并响应 -(NSMenu*)menuForEvent: 如果你想创建上下文菜单在飞行中。 NSView 是 NSResponder 的超级,它也有一个 -(NSMenu*)menu 属性并响应 -(void)rightMouseDown/Dragged/Up:。