代码之家  ›  专栏  ›  技术社区  ›  Austin

为什么我必须在10.5上调用NSWindowController上的showWindow两次?

  •  3
  • Austin  · 技术社区  · 15 年前

    我有一个NSWindowController的子类,用于从nib加载窗口并在屏幕上显示它。下面是我想显示窗口时调用的代码。在10.6调用showCustomWindow时,将显示该窗口,但在10.5上,必须调用此方法两次才能显示该窗口。

    -(IBAction)showCustomWindow:(id)sender 
    {
       if(!windowController){
           windowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindow"];
        }
    
        [windowController showWindow:self];
    }
    

    窗口中的“Visible a t Launch”复选框和取消复选框似乎没有什么区别。

    编辑:

    if([NSView instancesRespondToSelector:@selector(awakeFromNib)]) {
        [super awakeFromNib];
    }
    

    这使得我的nib可以正常加载,showWindow可以正常工作。

    3 回复  |  直到 15 年前
        1
  •  4
  •   Ashley Clark    15 年前

    如果要使用 -showWindow:

    其他一切 似乎 window 你的文件的所有者在你的笔尖上的窗口的出口?

        2
  •  0
  •   Darren    15 年前

        3
  •  0
  •   Ira Cooke    15 年前

    编辑:好的,对不起,我误解了你的问题,你需要给showWindow打两次电话。我没有答案。

    initWithWindowNibName: 实际上不会加载笔尖。加载笔尖很慢。。所以在你调用 showWindow 方法,或其他方法,如 window