如何创建一个不仅仅包含菜单项列表的MenuBar应用程序(使用Swift)?

时间:2015-02-07 11:27:03

标签: macos swift

我是OSX开发的新手(我已经完成了一些iOS操作,但这是我的第一个OSX应用程序,也是我的第一个Swift应用程序。)

我找到了几个关于如何使用简单的菜单项列表制作MenuBar应用程序的教程,如下所示:

simple menu

但我正在寻找更像Evernote,或Google云端硬盘或Mint的MenuBar窗口的内容:

window

我认为要做类似后者的事情,我需要一个常规的NSWindow,只需通过点击状态项(右边?)切换,但我如何按照Evernote& amp;谷歌呢?

如果使用Objective C应用,我发现this question提供了几种获取状态项位置的方法,但我不确定如何将其转换为Swift应用。例如,一个答案建议使用以下内容在单击后获取状态项的框架:

[[[NSApp currentEvent] window] frame]

但是,在Swift中,NSApp.currentEvent没有名为" window" ...

的成员

有没有人知道用Swift编写的任何MenuBar应用程序,它们不仅仅包含一个简单的菜单项列表?这样的事情对Swift来说根本不可能吗?


更新:
由于在Objective C中执行此类操作的示例和入门应用程序非常丰富,并且在Swift中如何做到这一点很少甚至没有,我最终放弃了Swift路径并构建了一个Objective C应用程序,而不是。我用这个作为首发:https://github.com/shpakovski/Popup。它非常快/容易上手,最终比Swift应用程序的工作少得多。

也许有一天,当Swift更成熟时,我会用那种语言尝试另一种。

1 个答案:

答案 0 :(得分:0)

实际上,NSApplication.sharedApplication().currentEvent?.window似乎很好。