【发布时间】:2011-10-12 00:45:30
【问题描述】:
我有一个多窗口 Cocoa 应用程序,使用之前question 的答案中描述的技术实现。
一切正常,但是在初始窗口出现后打开的窗口显示在前面,但它们的状态不是活动的(一切都是灰色的)。我必须在它们的框架内显式单击才能使它们成为活动窗口。
到目前为止我的支票:
- 我试过
makeKeyAndOrderFront:,但这并没有什么不同。 - NIB 中的文件所有者设置为窗口对应的控制器类。
- 在Debugger中可以看到每个控制器的实例其实就是对应窗口的所有者。
- NSThread 建议的解决方案不使window 键窗口化。
-
canBecomeKeyWindow方法返回NO,尽管窗口是 NSWindow 的一个实例。 - 窗口有一个标题栏并且可以调整大小。
我需要怎么做才能显示处于活动状态的后续窗口?
编辑:
我将NSWindow 子类化为SecondaryWindow 并覆盖canBecomeKeyWindow 以返回YES。我更改为 XIB 以使用新创建的 NSWindow 子类。用调试器单步执行代码,但窗口仍然没有成为关键窗口。
【问题讨论】:
-
canBecomeKeyWindow是否返回 YES? -
嗯.. 不,它返回 NO。我仔细检查了 XIB 文件,根据 IB,窗口是 NSWindow 的一个实例,根据文档默认实现应该返回 YES ...
标签: cocoa multi-window