【问题标题】:Open and create window in OS X在 OS X 中打开并创建窗口
【发布时间】:2012-01-24 07:43:10
【问题描述】:

如何在 Cocoa 中通过点击事件打开 nib 文件?我创建了 2 个 nib 文件;主菜单(默认)和我的自定义窗口。现在,我想要的是当我从主菜单 nib 文件中单击某个按钮时,它将触发打开我的 customWindow。怎么办?

【问题讨论】:

    标签: objective-c xcode macos cocoa nib


    【解决方案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 的文档。

      【讨论】:

        猜你喜欢
        • 2020-10-22
        • 1970-01-01
        • 2012-09-07
        • 1970-01-01
        • 2014-11-30
        • 2010-11-12
        • 1970-01-01
        • 2015-04-30
        • 1970-01-01
        相关资源
        最近更新 更多