如何在Cocoa Mac Application中点击按钮打开一个新窗口?

时间:2011-04-05 05:48:54

标签: cocoa macos xib

我想知道如何在Cocoa Mac Programming中点击按钮打开一个新窗口。帮我。我正在做一个mac应用程序,需要在特定按钮单击时打开一个新的mac窗口。

4 个答案:

答案 0 :(得分:42)

如果要为New Window创建单独的类,请执行以下步骤:

  1. 创建一个类,它是NSWindowController的子类,例如NewWindowController
  2. 为NewWindowController类创建一个窗口xib。
  3. 在按钮上单击代码为:

    NewWindowController *windowController = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"];
    [windowController showWindow:self];
    

答案 1 :(得分:12)

NSWindowController * wc=[[NSWindowController alloc] initWithWindowNibName:@"your_nib_name"];
[wc showWindow:self];

答案 2 :(得分:9)

Swift 3 :在你的故事板中转到WindowController - >身份检查员 - > storyBoardID:填写:mainWindow。 然后从您当前的viewcontroller链接故事板上的按钮到以下方法:

@IBAction func newWindow(_ sender: Any) {
    let myWindowController = self.storyboard!.instantiateController(withIdentifier: "mainWindow") as! NSWindowController
    myWindowController.showWindow(self)
}

答案 3 :(得分:7)

  
      
  1. 创建一个类,它是NSWindowController的子类,例如NewWindowController
  2.   
  3. 为NewWindowController类创建一个窗口xib。
  4.   
  5. 在按钮上单击代码为:

         

    NewWindowController *controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"]; [controllerWindow showWindow:self];

  6.   

是的,但是如果此代码在某个函数内部,窗口将关闭。 这是解决方案。

blah.h

@interface blah : NSObject {
     ...
     NewWindowController *controllerWindow;
     ...
}

blah.m

@implementation
...
   -(IBAction)openNewWindow:(id)sender {
       controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"];
       [controllerWindow showWindow:self];
    }
...