我对NSView进行了子类化,以处理mouseDown/ events mouseDown事件。现在,我想通过右键单击popUp上下文NSMenu (这是一个IBOutlet)。
NSMenu.popUpContextMenu(statusMenu, withEvent: theEvent, forView: self)..。但它说"statusMenu不是AppDelegate的成员“。我如何在课堂之外访问vars?
编辑:
位于IBOutlet中的AppDelegate列表:
@IBOutlet weak var statusMenu: NSMenu!我试图从我的自定义NSView中调用它:
class customView : NSView {
override func rightMouseDown(theEvent : NSEvent) {
// NSMenu.popUpContextMenu ???
}
}发布于 2015-02-02 17:28:09
有多种方法可以做到这一点:
1)在您的IBOutlet中创建一个NSView,并将NSMenu连接到它。
2)在您的IBOutlet中创建一个NSView,将您的AppDelegate连接到它,并通过该出口引用菜单(如果您出于某种原因不希望有两个对菜单的引用)
3)在AppDelegate中获取对NSView的运行时引用-语法为
var appDelegate = NSApplication.sharedApplication().delegate as AppDelegate
请参考菜单。
请注意,在第3种情况下," AppDelegate“是AppDelegate类的实际名称(通常,但不一定是"AppDelegate")。在案例2中,IBOutlet的类型也是如此。
https://stackoverflow.com/questions/28274609
复制相似问题