在 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 中打开并创建窗口的主要内容,如果未能解决你的问题,请参考以下文章

在没有 Cocoa 的情况下创建 OS X 窗口

在OS X上检查程序集(dll)的版本

如何让 OS X 设置 NSWindow 的初始位置

OS X OpenGL 3.2 核心(黑屏)

在活动的 OS X 桌面上保留一个窗口

如何在OS X中移动文件并创建缺少的目录?