1

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

这看起来像这样: Moom 捕获

有没有一种干净的方法来以这种方式装饰窗口,或者我应该创建某种恰好位于最大化按钮顶部、透明或带有 0x0 框架的应用程序,并在此应用程序中创建一个 NSPopover ?

4

2 回答 2

2

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

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

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

于 2014-11-10T07:33:21.630 回答
0

感谢格雷格的回答。我做了一些调查,发现了这一点:

https://developer.apple.com/library/mac/documentation/AppKit/Reference/NSAccessibility_Protocol_Reference/index.html#//apple_ref/c/data/NSAccessibilityFocusedUIElementChangedNotification

将您的应用注册为可访问性客户端并监听NSAccessibilityFocusedUIElementChangedNotification. 如果聚焦的 UI 元素是窗口的缩放按钮,则在适当的位置创建一个弹出框。

我要试试这个。我会尽可能多地发布。

于 2015-05-26T01:23:14.997 回答