如何在另一个窗口的按钮旁边显示NSPopover?

时间:2014-11-09 17:21:23

标签: macos cocoa nspopover

我在名为Moom的应用程序中看到了此功能。

这看起来像这样:  Moom capture

是否有一种干净的方式以这种方式装饰窗口,或者我应该创建某种应用程序,它恰好位于最大化按钮之上,透明或具有0x0帧,并在此创建NSPopover申请?

2 个答案:

答案 0 :(得分:2)

感谢您指向此应用的指针 - 看起来非常方便。

至于它是如何完成的。请注意,它使用辅助功能API - 安装时需要访问。应用程序就像它将自己设置为Accessibility客户端,然后在某些UI元素被聚焦时接收通知(因此缩放按钮悬停)。见这里:https://developer.apple.com/library/mac/documentation/Accessibility/Conceptual/AccessibilityMacOSX/AboutOSXAccessibility/AboutOSXAccessibility.html#//apple_ref/doc/uid/TP40001078-CH254-DontLinkElementID_18

从那里创建一个与目标UI元素(即缩放按钮)对齐的叠加窗口并不难。

答案 1 :(得分:0)

感谢greg's anwer。我做了一些调查,发现了这个:

Developers Console

将您的应用注册为辅助功能客户端并收听undefined。如果聚焦的UI元素是窗口的缩放按钮,则在正确的位置创建一个弹出窗口。

我要试试这个。我会随时发布更多信息。