objective-c – 如何从单独的NIB显示工作表

objective-c – 如何从单独的NIB显示工作表,第1张

概述如何在单独的NIB中放置一个窗口,给它自己的NSWindowController,让它作为一张纸滑出? (这是与床单有关的典型事吗?) 我试图从我的主窗口显示一个自定义工作表(从父窗口的标题栏向下滑动的窗口).我想,我想做的就是标准,但是我找不到明确的例子或解释如何做到我想要的. 我想做什么: >我的app delegate拥有主窗口,其中有一个用于打开“设置”表的按钮. >“设置”表: >在一个 如何在单独的NIB中放置一个窗口,给它自己的NSWindowController,让它作为一张纸滑出?

(这是与床单有关的典型事吗?)

我试图从我的主窗口显示一个自定义工作表(从父窗口的标题栏向下滑动的窗口).我想,我想做的就是标准,但是我找不到明确的例子或解释如何做到我想要的.

我想做什么:

>我的app delegate拥有主窗口,其中有一个用于打开“设置”表的按钮.
>“设置”表:
>在一个单独的NIB中.
>将文件所有者设置为类SettingsWindowController,它是NSWindowsController的子类

>当用户点击“设置”时,我正在尝试使用Apple的[示例代码] [1]

- (voID)showCustomSheet: (NSWindow *)window// User has asked to see the custom display. display it.{    if (!settingsSheet)     //Check the settingsSheet instance variable to make sure the custom sheet does not already exist.        [NSBundle loadNibnamed:@"SettingsSheet" owner: self];        //BUT HOW DOES THIS MAKE settingsSheet NOT nil?    [NSApp beginSheet: settingsSheet            modalForWindow: window             modalDelegate: self             dIDEndSelector: @selector(dIDEndSheet:returnCode:contextInfo:)             contextInfo: nil];     // Sheet is up here.    // Return processing to the event loop}

请原谅以下简单而众多的问题:

>当我调用loadNibname:owner:时,我不希望所有者成为自己,因为这使我的应用程序委托“MyCustomSheet”的所有者 – 这就是我的SettingswindowsController应该是什么.但是,我不知道如何使SettingswindowsController成为此方法的所有者.
>如果我的工作表选中了“在启动时可见”,则loadNibname:owner:立即将窗口显示为普通窗口,而不是从主窗口滑出的工作表.
>如果我的工作表没有选中“在启动时可见”,则beginSheet:modalForWindow:etc会导致“模态会话需要模态窗口”.我很确定这是因为我让Nib的主人自己(正如我已经提到的那样).
>在示例代码中,我不知道名为@“SettingsSheet”的Nib如何与实例变量settingsSheet“关联” – 但它们显然是相关的,因为代码首先检查:if(!settingsSheet)(我已标记)这个评论//但这怎么会使settingsSheet不是??)

感谢您耐心阅读所有这些!

解决方法 >创建SettingsWindowController的实例,使用initWithWindowNibname: >你不希望它在发布时可见. >见1. >您的实例变量将可用于SettingsWindowController 总结

以上是内存溢出为你收集整理的objective-c – 如何从单独的NIB显示工作表全部内容,希望文章能够帮你解决objective-c – 如何从单独的NIB显示工作表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1023139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存