隐藏标题栏时,子视图将被禁用

Jas*_*son 5 macos cocoa

使用OSX 10.8 SDK在XCode for OSX中编写应用程序.我的所有Windows工作正常,直到我使用Interface Building来删除nib中的标题栏(我取消选中Title Barwindow元素的Attributes Inspector上的param).窗口仍然显示,但所有子视图都被禁用.我不能再输入文本和进程条都是灰色的.

有谁知道为什么会这样?以及如何使用没有标题栏的窗口,但启用了所有子视图?

以下是标题栏的视图: 在此输入图像描述

这就是没有它的样子: 在此输入图像描述

如您所见,一切都被禁用.


更新

有人询问有关显示窗口的代码.对于这个例子,我没有使用任何代码.对于上面的两个屏幕,这里是我遵循的步骤:

  1. 使用XCode创建了一个新的cocoa应用程序.(自动创建一个xib).
  2. 将两个控件(文本字段和进度条)拖出到现有窗口上.
  3. 跑了,拍了一个屏幕截图
  4. 关闭并检查Title Bar窗口的属性.
  5. 重新启动了应用.拍了第二个屏幕截图.

tru*_*iso 11

这个链接有一个答案:

Xcode 4,从界面构建器中删除Cocoa标题栏会禁止编辑textView

如果您阅读NSWindow的文档,您可以看到方法canBecomeKeyWindow和canBecomeMainWindow如果没有标题栏则返回NO.对NSWindow进行细分并超越这些方法将使它们成为关键窗口.

有关如何在Apple的文档网站中对这些窗口进行子类化的示例代码,或者如果您安装了文档,则在xcode中.

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/occ/instm/NSWindow/canBecomeKeyWindow

在上面的链接中搜索canBecomeKeyWindow,将包含有助于解释该过程的示例代码.