【问题标题】:Subviews become disabled when title bar is hidden隐藏标题栏时子视图被禁用
【发布时间】:2013-07-22 03:43:21
【问题描述】:

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

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

这是我的标题栏视图:

这就是没有它的样子:

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


更新

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

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

【问题讨论】:

  • 你是如何“摆脱他们窗口中的标题栏”的?
  • 界面生成器。我正在取消选中 NSWindow 对象的属性检查器上的 Title Bar 检查。
  • 请显示您用来显示窗口的代码。
  • 刚刚使用了带有新可可应用程序的界面构建器。有关详细信息,请参阅更新。

标签: macos cocoa


【解决方案1】:

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

Xcode 4, Cocoa Title bar removing from interface builders disables textView from editing

如果您阅读了 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,将包含示例代码,有助于解释该过程。

【讨论】:

    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 2011-03-10
    • 2015-05-09
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多