当前位置:  开发笔记 > IOS > 正文

为什么我的表单不附加到它运行的窗口?

如何解决《为什么我的表单不附加到它运行的窗口?》经验,为你挑选了2个好方法。

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

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

它显示工作表窗口并启动模态会话,窗口有一个标准的Aqua标题栏,没有"连接"到主窗口,可以像常规窗口一样移动.不用说,这是不可取的:-).为什么表单窗口"弹出"它所运行的窗口,就像工作表通常以这种方式开始时一样?

我想知道我是否在控制器内部开始工作表的事实-awakeFromNib可能会产生影响,所以我将工作表移动到按钮的动作,我可以稍后触发.这并未改变行为.我没有想过要尝试的任何其他事情.我的目标是10.5 SDK,使用Xcode 3.1.

编辑:所以看起来我已经创建了一个模态对话框; 工作表和应用程序模式对话框都是使用该-beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:方法启动的.但是,如何指示我的窗口应该是工作表而不是模态对话框?



1> Renaud Prade..:

这发生在几天前我:

你忘了设置窗口的窗口控制器(出口文件的所有者笔尖文件).如Nathan所示,您可能会看到该-[NSWindowController window]方法返回nil.

您还必须取消选中工作表中的Visible at launch选项.


"在发布时可见"原来是我的问题 - 工作表在正确的时间出现,但与窗口断开连接,尽管我的orderOut:电话也不会消失.感谢您发布此内容!
"在发布时可见"确实是我的问题.非常有用的答案.
在发布时可见也是我的问题!

2> Nathan Kinsi..:

如果mainWindow为nil,则表单将显示为窗口/对话框.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有