代码之家  ›  专栏  ›  技术社区  ›  user23743

为什么我的床单没有贴在它的窗户上?

  •  25
  • user23743  · 技术社区  · 16 年前

    我有一个NIB,它包含两个窗口,一个是应用程序启动时可见的主窗口,另一个是自定义工作表(因此在启动时不可见)。当需要工作表时,我的控制器调用:

    [NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];

    显示工作表窗口并启动模式会话, 该窗口有一个标准的Aqua标题栏,没有“连接”到主窗口,可以像普通窗口一样四处移动。不用说,这是不可取的:-)。为什么床单窗口不会像以这种方式开始时床单通常做的那样,从它运行的窗口“弹出”?

    我想知道我是否在控制器的内部开始工作表 -awakeFromNib 可能会有影响,所以我将工作表移动到一个按钮的动作,我可以稍后触发。这并没有改变这种行为。我还没想到还有什么可以尝试的。我的目标是10.5SDK,使用Xcode 3.1。

    编辑: -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo: 模态对话?

    2 回复  |  直到 12 年前
        1
  •  101
  •   Renaud Pradenc    16 年前

    这件事几天前发生在我身上:

    • 窗口控制器的出口( 文件所有者 正如Nathan所指出的,您可能会看到 -[NSWindowController window] 方法返回nil。
    • 您还必须取消选中 工作表的选项。
        2
  •  18
  •   Nathan Kinsinger    16 年前