【问题标题】:Cocoa, can't make window appear programmatically可可,不能让窗口以编程方式出现
【发布时间】:2011-08-30 04:48:03
【问题描述】:

我在以编程方式显示窗口时遇到问题.....

我已经在界面生成器中创建了窗口,并且我有一个窗口控制器类

我在绑定到窗口的控制器类中有 IBOutlet NSWindow mywindow(通过界面生成器)。

我尝试调用[mywindow display][mywindow makeKeyAndOrderFront:nil],但都没有显示窗口。

如果我在界面构建器中设置了“启动时可见”,则该窗口在应用程序启动时可见,但现在我无法隐藏它...调用[mywindow close] 什么都不做。

我想我在这里遗漏了一些非常基本的东西,但不知道是什么。

【问题讨论】:

  • 您是否设置了断点并确保此时 mywindow 不为零?只是想确保 XIB 绑定没有问题。

标签: objective-c xcode cocoa


【解决方案1】:

您确定是从 IB 窗口控制器实例中调用此代码,而不是从以编程方式创建的实例中调用此代码吗?尝试使用NSLog(@"%@",myWindow); 来检查myWindow 是否为nil

【讨论】:

    【解决方案2】:

    确保 1) 您的窗口存在,2) 在 IB 中建立连接,以及 3) 窗口的坐标不在屏幕外。

    【讨论】:

    • 设置断点后,mywindow 对象显示为 (NSWindow *) 0x0.... 不确定这是否意味着它没有正确初始化? ...顺便说一句,在 IB 中,网点 确实 显示为正确链接
    • 请发布您用于实例化窗口控制器的代码。
    【解决方案3】:

    确保在属性检查器中未选中 mywindow 的 Release When Closed 复选框

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      • 2015-08-11
      • 1970-01-01
      相关资源
      最近更新 更多