我正在与NSTextFieldCell的子类一起工作,并试图在NSTextFieldCell子类上执行鼠标右键时显示上下文菜单。
MouseDown和rightMouseDown不仅仅对NSTextFieldCell子类的对象起作用,对于所有其他自定义子类,比如NSButtonCell,一切都工作得很好。
有人能帮忙解决这个问题吗?谢谢!
NSCell有一个可设置的-(NSMenu*)菜单属性,可以用来定义上下文菜单(重载-menu是不够好的)。一个NSCell与一个NSControl相关联。NSControl(在你的例子中是NSTextField的一个实例)是NSView的超类,它有一个可设置的-(NSMenu*)defaultMenu属性来定义上下文菜单,如果你想动态地创建上下文菜单,它会响应-(NSMenu*)menuForEvent:。NSView是NSResponder的父类,NSResponder也有一个-(NSMenu*)菜单属性,并响应-(void)rightMouseDown/drag/Up:.