加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:19:12 所属栏目:百科 来源:网络整理
导读:是否可以遍历OSX中任何应用程序的所有打开的窗口,并在 Swift中收听他们调整大小的事件?我想创建自定义窗口管理器,根据用户行为移动和调整事件大小 – 因此,如果用户调整窗口大小,其他窗口将自动重新排列. 我是Haskell,而不是一个Swift开发人员,所以我会非常
是否可以遍历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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读