是否可以遍历OSX中任何应用程序的所有打开的窗口,并在
Swift中收听他们调整大小的事件?我想创建自定义窗口管理器,根据用户行为移动和调整事件大小 – 因此,如果用户调整窗口大小,其他窗口将自动重新排列.
我是Haskell,而不是一个Swift开发人员,所以我会非常感谢任何代码片段/示例显示如何实现这一效果. (其实我会用它作为一种Haskell – > Cocoa绑定.)
编辑:
我也很有兴趣在Objective-C中找到解决方案,但是Swift对我来说更重要.
是否可以遍历OSX中任何应用程序的所有打开的窗口,并在Swift中收听他们调整大小的事件?
原文链接:https://www.f2er.com/swift/318798.html有可能这样做,更好的方法是让您的自定义窗口管理器类实现NSWindowDelegate协议,并将所有窗口的delegate设置为您的自定义窗口管理器.这将给你所有的调整大小和移动你需要的信息.
我是Haskell,所以我会非常感谢任何代码片段/示例显示如何实现这一效果.
实施协议方式:
class CustomWindowManager: NSWindowController,NSWindowDelegate { // Resize Methods func windowWillResize(sender: NSWindow,toSize frameSize: NSSize) -> NSSize { // Your code goes here } func windowDidResize(notification: NSNotification) { // Your code goes here } }
然后,您可以选择要实现的协议方法,因为协议中的所有方法都是可选的.
您必须能够识别哪个窗口正在调用委托方法,并跟踪由于对初始窗口更改的响应而移动或调整大小的任何窗口.看到这个Stack Overflow question的帮助.
要获得当前屏幕上所有窗口的列表,请参阅此Stack Overflow question.
编辑
要获取目前在屏幕上的应用程序的所有窗口的列表,请参阅此Stack Overflow question.