在Swift / Objective-C中收听窗口大小调整事件

前端之家收集整理的这篇文章主要介绍了在Swift / Objective-C中收听窗口大小调整事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以遍历OSX中任何应用程序的所有打开的窗口,并在 Swift中收听他们调整大小的事件?我想创建自定义窗口管理器,根据用户行为移动和调整事件大小 – 因此,如果用户调整窗口大小,其他窗口将自动重新排列.

我是Haskell,而不是一个Swift开发人员,所以我会非常感谢任何代码片段/示例显示如何实现这一效果. (其实我会用它作为一种Haskell – > Cocoa绑定.)

编辑:
我也很有兴趣在Objective-C中找到解决方案,但是Swift对我来说更重要.

是否可以遍历OSX中任何应用程序的所有打开的窗口,并在Swift中收听他们调整大小的事件?

有可能这样做,更好的方法是让您的自定义窗口管理器类实现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.

原文链接:https://www.f2er.com/swift/318798.html

猜你在找的Swift相关文章