我正在使用 NSTextFieldCell 的子类,并试图在 NSTextFieldCell 子类上执行鼠标右键单击时显示上下文菜单。
MouseDown 和 rightMouseDown 不仅适用于 NSTextFieldCell 子类的对象,对于所有其他自定义子类,例如 NSButtonCell 的对象,一切正常。
有人可以帮忙解决这个问题吗?
谢谢!
我正在使用 NSTextFieldCell 的子类,并试图在 NSTextFieldCell 子类上执行鼠标右键单击时显示上下文菜单。
MouseDown 和 rightMouseDown 不仅适用于 NSTextFieldCell 子类的对象,对于所有其他自定义子类,例如 NSButtonCell 的对象,一切正常。
有人可以帮忙解决这个问题吗?
谢谢!
NSCell 有一个可设置的 -(NSMenu*)menu 属性,可用于定义上下文菜单(重载 -menu 不够好)。一个 NSCell 与一个 NSControl 相关联。NSControl (在你的情况下是 NSTextField 的实例)是 NSView 的超级,它有一个可设置的 -(NSMenu*)defaultMenu 属性来定义上下文菜单并响应 -(NSMenu*)menuForEvent: 如果你想创建上下文菜单在飞行中。NSView 是 NSResponder 的超级,它还具有 -(NSMenu*)menu 属性并响应 -(void)rightMouseDown/Dragged/Up:。