在 OS X 中打开并创建窗口
Posted
技术标签:
【中文标题】在 OS X 中打开并创建窗口【英文标题】:Open and create window in OS X 【发布时间】:2012-01-24 07:43:10 【问题描述】:如何在 Cocoa 中通过点击事件打开 nib 文件?我创建了 2 个 nib 文件;主菜单(默认)和我的自定义窗口。现在,我想要的是当我从主菜单 nib 文件中单击某个按钮时,它将触发打开我的 customWindow。怎么办?
【问题讨论】:
【参考方案1】:如果您使用的是窗口控制器,请尝试以下代码:
NSWindowController* yourWindowController = [[NSWindowController alloc] initWithWindowNibName:@"YourXIBName"];
[yourWindowController showWindow:self]
执行此操作的通用方法是使用以下代码:
loadNibNamed:owner:
【讨论】:
你应该打电话给[yourWindowController showWindow:self]
,这就是它的用途。
它不工作。窗口只是眨眼(在一秒钟内打开和关闭)@RobKeniger Miraaj
你需要保留窗口控制器,它正在被释放。您需要将控制器的引用存储为属性或 ivar。
不好意思问这个,但是...我在哪里可以找到我的 XIBName?【参考方案2】:
如果您可以将两个窗口放在同一个 nib 中,您可以控制并拖动按钮到要打开的窗口,选择“makeKeyAndOrderFront”,然后取消选中“关闭时释放”和“启动时可见”属性检查器中的复选框。
但是说真的,请阅读查看编程指南。这将使生活更轻松。
【讨论】:
【参考方案3】:Nib 只是与代码中的对象连接的视图图的直观表示。从基础开始,阅读View Programming Guide。
【讨论】:
也许这个答案应该链接到 OS X 部分而不是 ios 指南。【参考方案4】:您还可以将单击菜单按钮链接到应用程序委托中的 IBAction,它调用
[NSBundle loadNibNamed:"myNib" withDelegate:self];
我不确定这是否正确,但请查看 NSBundle 的文档。
【讨论】:
以上是关于在 OS X 中打开并创建窗口的主要内容,如果未能解决你的问题,请参考以下文章