是否可以遍历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.jb51.cc/swift/318798.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。