【发布时间】:2013-05-16 18:03:02
【问题描述】:
我的应用中有 5 个不同的窗口同时出现在屏幕上。在我使用该应用程序一段时间后,它们有时会散布在屏幕上,这真的让我很困扰。所以我想做一个动作,在调用这个动作的任何时候,将所有这些窗口定位到屏幕上的特定位置。
有谁知道如何将这些窗口组合在一起并“记住”它们的特定位置?!
行动之前
应用操作后
【问题讨论】:
标签: objective-c macos cocoa nswindow
我的应用中有 5 个不同的窗口同时出现在屏幕上。在我使用该应用程序一段时间后,它们有时会散布在屏幕上,这真的让我很困扰。所以我想做一个动作,在调用这个动作的任何时候,将所有这些窗口定位到屏幕上的特定位置。
有谁知道如何将这些窗口组合在一起并“记住”它们的特定位置?!
行动之前
应用操作后
【问题讨论】:
标签: objective-c macos cocoa nswindow
IIRC、Xcode (3.X)使用拥有允许用户以大致相同的方式将窗口平铺在彼此之上的功能。
无论如何,NSApplication has a windows API(或orderedWindows)允许您获取所有应用程序窗口的数组。您可以遍历这个窗口数组并根据屏幕大小(您应该能够通过NSScreen API's 获得,包括frame,它给出了实际的屏幕大小),您可以为自己的窗口实现平铺窗口功能。
最性感的“平铺”功能会以动画方式移动窗口,您可以通过NSWindow's [setFrame: display: animate:] method 来实现。
【讨论】: