如何使用 NSPopover 制作菜单栏应用程序?
我见过很多带有菜单栏项的应用程序或仅带有菜单栏界面的应用程序。
互联网上有一些教程和资料向您展示如何实现这一目标。但问题是,它们中只有可点击的索引行。
我希望当您单击菜单栏图标/项目时出现 NSPopover。有谁知道怎么做这个吗?
I have seen a lot of applications with a Menubar Item or applications with only a Menubar interface.
There are some tutorials and stuff on the internet showing you how to accomplish that. But the thing is, those do only have clickable index rows in them.
I would want to have a NSPopover appear when you click the Menubar Icon / Item. Anybody who knows how to make this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道是否可以使用标准状态栏项目来完成。使用菜单的自定义视图相对容易。
使用自定义视图创建状态栏项目:
您的自定义视图需要检测鼠标单击:
最后,在检测到鼠标单击后的某个时刻,显示/隐藏弹出窗口。
您需要一些 NSWindow swizzling 来获取文本字段在弹出框内工作。
我已经准备了一个最小的 Xcode 项目,其中包含这些想法和一些粘合剂:PopoverMenulet 。
I don't know if it can be done with a standard status bar item. Using a custom view for the menulet it's relatively easy.
Create a status bar item with a custom view:
Your custom view needs to detect mouse clicks:
And finally, at some point after detecting the mouse click, show/hide the popover.
You need a bit of NSWindow swizzling to get text fields working inside the popover.
I've prepared a minimal Xcode project with these ideas and some glue: PopoverMenulet.