我在一个名为Moom的应用程序中看到了这个功能。
这看起来像这样:
有没有一种干净的方法来以这种方式装饰窗口,或者我应该创建某种恰好位于最大化按钮顶部、透明或带有 0x0 框架的应用程序,并在此应用程序中创建一个 NSPopover ?
感谢您提供指向此应用程序的指针 - 看起来非常方便。
至于是怎么做到的。请注意,它使用可访问性 API——安装时需要访问。该应用程序看起来像是将自己设置为辅助功能客户端,然后在某些 UI 元素被聚焦时接收通知(因此缩放按钮悬停)。见这里:https ://developer.apple.com/library/mac/documentation/Accessibility/Conceptual/AccessibilityMacOSX/AboutOSXAccessibility/AboutOSXAccessibility.html#//apple_ref/doc/uid/TP40001078-CH254-DontLinkElementID_18
从那里创建一个与目标 UI 元素(即缩放按钮)对齐的覆盖窗口并不难。
感谢格雷格的回答。我做了一些调查,发现了这一点:
将您的应用注册为可访问性客户端并监听NSAccessibilityFocusedUIElementChangedNotification
. 如果聚焦的 UI 元素是窗口的缩放按钮,则在适当的位置创建一个弹出框。
我要试试这个。我会尽可能多地发布。