objective-c - 如何将多个窗口组合在一起并将它们放置到屏幕上的特定位置?

标签 objective-c macos cocoa nswindow

我的应用程序中有 5 个不同的窗口同时显示在屏幕上。有时,当我使用该应用程序一段时间后,它们会在屏幕上散开,这确实让我很烦恼。因此,我想执行一个操作,在调用此操作时将所有这些窗口定位到屏幕上的特定位置。

有谁知道如何将这些窗口分组在一起并“记住”它们的特定位置?!

行动之前

enter image description here

应用操作后

enter image description here

最佳答案

IIRC、Xcode (3.X)曾经拥有此功能,允许用户以大致相同的方式将窗口平铺在彼此之上。

无论如何,NSApplication has a windows API (或 orderedWindows ),允许您获取所有应用程序窗口的数组。您可以遍历这个窗口数组,并根据屏幕大小(您应该可以通过 NSScreen API's 获得,包括 frame ,它给出实际的屏幕大小),您可以为您自己的窗口实现平铺窗口功能。

最性感的“平铺”功能将动画移动窗口,您可以通过 NSWindow's [setFrame: display: animate:] method 来完成此操作。 .

关于objective-c - 如何将多个窗口组合在一起并将它们放置到屏幕上的特定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16594410/

相关文章:

iphone - OSX Keychain Access - 从现有的 APNS 私钥生成 CSR(Apple 推送通知服务)

macos - AppleScript打开命名的终端窗口

cocoa - 将对象添加到 nsmutable 数组,但数组仍然为空

macos - 与 OSX 的 UIViewController 方法等效的是什么?

ios - 相同的对象但具有不同的内容(目标 - C)

ios - objective-c - 获取指向对象属性的指针

iphone - iPhone-发行证书问题

macos - NSOutlineView 的子类 NSTableRowView

c# - Xcode Cocoa - 从 NSTableView 拖放到 Finder

objective-c - 从 NSDictionary 中获取特定数据