首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹出NSMenu右键单击NSView (Swift)

弹出NSMenu右键单击NSView (Swift)
EN

Stack Overflow用户
提问于 2015-02-02 09:33:39
回答 1查看 1.6K关注 0票数 0

我对NSView进行了子类化,以处理mouseDown/ events mouseDown事件。现在,我想通过右键单击popUp上下文NSMenu (这是一个IBOutlet)。

代码语言:javascript
复制
NSMenu.popUpContextMenu(statusMenu, withEvent: theEvent, forView: self)

..。但它说"statusMenu不是AppDelegate的成员“。我如何在课堂之外访问vars?

编辑:

位于IBOutlet中的AppDelegate列表:

代码语言:javascript
复制
@IBOutlet weak var statusMenu: NSMenu!

我试图从我的自定义NSView中调用它:

代码语言:javascript
复制
class customView : NSView { 
  override func rightMouseDown(theEvent : NSEvent) {
    // NSMenu.popUpContextMenu ???
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的类型也是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28274609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档