【问题标题】:How to programmatically arrange windows like in expose with Cocoa?如何以编程方式排列窗口,如使用 Cocoa 暴露?
【发布时间】:2011-05-28 10:59:00
【问题描述】:

我想知道是否有一种类似于 Cocoa 中的 Expose 的方式以编程方式排列桌面窗口。

【问题讨论】:

  • 这是什么背景? (操作系统通常会将窗口放在它认为应该去的地方,而 Expose 显然已经存在,所以我不明白你想要实现的目标。)
  • @middaparka,这在很多应用程序中很有用。这是一个简单的例子。例如,假设您在许多预览窗口中打开了许多图像,并且您正在使用某种图像编辑软件。您的应用程序可以进入“公开”模式并允许用户选择打开的图像并将图像导入您的应用程序。我可以想到此功能的 100 多种其他用途。
  • @In silico,我有一个戴尔蓝牙鼠标可以做同样的事情。
  • @David - 但是您是说在 Mac OS X 平台上执行此操作吗? (我猜不是,否则你只会使用 Expose。)或者你只是在谈论将窗口默认位置设置为打开,还是?

标签: cocoa macos apple-expose


【解决方案1】:

我能想到的最好的就是这个(有点笨拙,不会继续显示移动内容,但应该可以):

  1. 将每个窗口的内容绘制成图像
  2. 创建显示这些图像的新窗口(设置为随窗口大小调整而缩放),并隐藏您的旧窗口
  3. 计算每个窗口的新位置(第一个近似值是将它们全部缩放到相同大小,然后平铺)
  4. 调用 -setFrame:animate: 在所有这些上

或者,同样的技巧,但不是使用真实的窗口,而是制作一个屏幕大小的透明窗口并在其中移动 CALayers。

祝你好运!这绝对是一件很难做好的事情。

【讨论】:

  • 我担心有人会告诉我。我希望有一个更简单的解决方案。这就是我现在要前进的方向。谢谢。
猜你喜欢
  • 2011-08-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多