如何在另一个窗口内加载笔尖?
我试过initWithWindowName,
if (mmController == NULL)
mmController = [[mainMenu alloc] initWithWindowNibName:@"mainMenu"];
[mmController showWindow:self];
Run Code Online (Sandbox Code Playgroud)
但它打开了一个新窗口.
我也尝试过loadNibNamed
[NSBundle loadNibNamed:@"mainGame" owner:self];
Run Code Online (Sandbox Code Playgroud)
它成功了,但当我尝试使用相同的方法返回主菜单时,
[NSBundle loadNibNamed:@"mainMenu" owner:self];
Run Code Online (Sandbox Code Playgroud)
它不起作用.它什么都不做......有什么想法吗?
我试过initWithWindowName,
你的意思是initWithWindow¹Nib²Name³:,它取一个包含窗口(1)的笔尖(2)的名称(3).
Run Code Online (Sandbox Code Playgroud)if (mmController == NULL)
这应该是nil,NULL因为您正在比较Objective-C对象指针.
Run Code Online (Sandbox Code Playgroud)mmController = [[mainMenu alloc] initWithWindowNibName:@"mainMenu"];
这是什么mainMenu?它必须是一个类,但它的子类是什么?
Run Code Online (Sandbox Code Playgroud)[mmController showWindow:self];
从这条消息和上一条消息,我猜mainMenu是NSWindowController的子类.
不应该要求猜测.你应该专门命名你的类,这样任何人都可以通过类名来分辨类和它的实例.
简洁是一种美德,但如果你需要做多久,那么就去做吧.我们有名称完成的现代工具.tab键可以消除缩写名称的唯一优势.
但它打开了一个新窗口.
是.您通过从笔尖加载窗口创建了一个窗口,然后告诉窗口控制器显示该窗口.显示新窗口是预期的结果.
我也尝试过loadNibNamed
Run Code Online (Sandbox Code Playgroud)[NSBundle loadNibNamed:@"mainGame" owner:self];它成功了,但当我尝试使用相同的方法返回主菜单时,
没有"回来".加载nib只是通过从归档中加载它们来创建对象.您可以多次加载相同的笔尖,并且加载笔尖不会以某种方式撤消加载前一个笔尖的结果.
您可能需要阅读资源编程指南,其中包括笔尖以及图像和声音文件,以及" 捆绑编程指南".
如果要隐藏从mainGame笔尖加载的窗口,请执行此操作.AppKit中的术语是"排序"(与"排序"相反,"排序前"和"排序后退"是具体的操作方式).
Run Code Online (Sandbox Code Playgroud)[NSBundle loadNibNamed:@"mainMenu" owner:self];它不起作用.它什么都不做......
您是否尝试加载项目附带的MainMenu笔尖?如果是这样,请确保您的案例正确 - 您不希望您的应用程序因为区分大小写的卷运行它而被破坏,对于使用默认不区分大小写的人员,您也不希望它被破坏文件系统.
如果那不是你想要做的,那么你不清楚你想要做什么.MainMenu通常是包含主菜单的nib(菜单栏的内容); 命名任何其他笔尖"mainMenu"或类似的东西最多会导致混乱和最坏的问题.如果这应该是其他一些笔尖,你应该给它一个不同的名字.
无论哪种方式,这都不是你需要做的.如果要隐藏加载的窗口mainGame,则需要隐藏该窗口,而不是加载不同的笔尖.
此外,一旦窗口加载,请不要再次加载(除非您关闭并释放它).一旦你加载它,你可以简单地重新订购它.最有可能的是,你会想要把它变成关键并在它前面订购.
在Mac上,您不仅限于一个窗口; 实际上,无论你做什么,你的应用都有多个窗口(至少三个).API是围绕您显示多个窗口的能力而构建的.
有关更多信息,请参见" 窗口编程指南"
如何在另一个窗口内加载笔尖?
正如Justin Meiners已经告诉过你的那样,你可能想要NSViewController,虽然你可以不用,只需加载包含视图的nib直接使用loadNibNamed:.
请注意,NSViewController并不像Cocoa Touch的UIViewController那样强大/功能强大.
您需要阅读View编程指南.
| 归档时间: |
|
| 查看次数: |
3778 次 |
| 最近记录: |