最小化 - 我是否需要自定义框架

时间:2012-01-28 12:42:22

标签: xcode osx-lion nswindow appkit nsapplication

我想在双击图层0中任何可见窗口的标题栏时创建一个系统范围的最小化最小化功能。

这似乎是一个非常简单的功能来重新实现......当双击标题栏时,只需绘制标题栏。而已。问题在于所有应用程序都是如此。我认为它需要编写自定义框架来覆盖AppKit中的行为?也许NSApplication,NSWindow或NSView?

如何重新制作最小化原位? 框架是我唯一的选择吗?如果我创建一个框架,我可以替换第三方应用程序中的最小化行为吗?

我需要覆盖哪个框架才能拦截并重新创建最小化按钮的默认行为?

有关最小化的更多信息 我熟悉Unsanity的WindowShade,这正是我想要创建的。据说不精神正在研究Lion版本,但他们的记录是双重的。在OS 7或8时代,最小化就是一种系统功能。我尝试过尝试替换此功能的其他实用程序,并且在核心系统级别没有任何最小化的功能喜欢它需要做。请不要提供完善的建议,我将建立自己的建议。

我已经构建了一个可以重新创建最小化的应用程序,但它还不够好。 我的应用程序半成功地通过将“占位符”窗口(属于我的应用程序)替换为第三方窗口(当它们最小化停靠时)来重新创建最小化。当我的窗口(仅限标题栏)被双击时,我关闭窗口并从底座恢复真实窗口。

我的自定义应用程序运行正常,但有很多应用程序切换正在进行。我已经优化了应用程序之间的切换,几乎是无缝的,但事实仍然是每次双击窗口标题栏时都会进行应用程序切换。应用程序切换的结果是菜单栏来回切换,第三方应用程序的托盘在我的应用程序获得焦点时隐藏自己,并且列表继续。

所以,虽然我已经构建了一个概念应用程序,但这种方法并不像我希望的那样有效。最小化需要使用除构建应用程序之外的其他方法来实现,我需要帮助了解如何执行此操作。

minimize-in-place demo app

我知道我需要做的事情。建议和协助欢迎。 我想我需要编写一个替换AppKit的自定义框架?这似乎是压倒性的,即使我只需要覆盖超小部分代码?即核心_minimize函数无论可能是什么。

双击第三方窗口的标题栏时,只需剪辑到标题栏,让系统的其余部分正常运行。在取消最小化(双击第二次)时,将剪辑设置回完整窗口。

简单吧?

感谢您的任何帮助/建议,

克里斯

0 个答案:

没有答案