7

使用 OSX 10.8 SDK 在 XCode for OSX 中编写应用程序。我所有的 Windows 工作正常,直到我使用 Interface Building 摆脱了笔尖中的标题栏(我取消选中Title Bar窗口元素的 Attributes Inspector 上的参数)。窗口仍然显示,但所有子视图都被禁用。我无法再输入文本,进程栏全部变灰。

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

这是我的标题栏视图: 在此处输入图像描述

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

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


更新

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

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

1 回答 1

15

这个链接有这个问题的答案:

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

如果您阅读 NSWindow 的文档,您会看到方法 canBecomeKeyWindow 和 canBecomeMainWindow 如果没有标题栏则返回 NO。子类化 NSWindow 并覆盖这些方法将使它们成为关键窗口。

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

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

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

于 2013-07-24T17:53:52.390 回答