我正在编写一个应用程序,必须知道何时调整窗口大小或移动窗口。 我查看了通知,但似乎没有按照我的预期进行。
你知道我怎么能做到这一点吗?
答案 0 :(得分:4)
为您的窗口提供委托。 NSWindowDelegate protocol有windowWillResize:toSize:
和windowWillMove:
种方法。
答案 1 :(得分:2)
鉴于您对Carl的答案的回应,我建议使用Accessibility API,这可以让您访问所有窗口(而不仅仅是您的应用程序)的访问权限(我相信框架更改通知)。
答案 2 :(得分:1)
如果您想要窗口大小/排序,请查看CGWindow.h。 CGWindowListCreateDescriptionFromArray()可能就是你想要的。
NSWindowList()对于窗口列表也很有用。
答案 3 :(得分:0)
如果您需要管理 MacOS Windows,请尝试使用辅助功能。
AX 非常棘手(低级/异步),但这两个 github 有很大帮助。
https://github.com/tmandry/Swindler
用途
https://github.com/tmandry/AXSwift
它们为窗口创建和移动等提供回调。
从骗子开始
答案 4 :(得分:-1)
在Swift中,我的AppDelegate看起来像这样:
func applicationDidFinishLaunching(notification: NSNotification) {
// Set NSWindowDelegate to respond to windowWillResize
window.delegate = self
}
func windowWillResize(sender: NSWindow, toSize frameSize: NSSize) -> NSSize {
println(frameSize)
return frameSize
}