Cocoa Macプログラミングのボタンクリックで新しいウィンドウを開く方法を知りたい。助けて。特定のボタンをクリックすると新しいMacウィンドウを開く必要があるMacアプリケーションを実行しています。
新しいウィンドウ用に別のクラスを作成する場合の手順は次のとおりです。
ボタンをクリックしてコードとして:
NewWindowController *windowController = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"];
[windowController showWindow:self];
NSWindowController * wc=[[NSWindowController alloc] initWithWindowNibName:@"your_nib_name"];
[wc showWindow:self];
Swift:ストーリーボードでWindowController-> Identity inspector-> storyBoardID:fillout:mainWindowに移動します。次に、現在のViewControllerから、ストーリーボード上のボタンを次のメソッドにリンクします。
@IBAction func newWindow(_ sender: Any) {
let myWindowController = self.storyboard!.instantiateController(withIdentifier: "mainWindow") as! NSWindowController
myWindowController.showWindow(self)
}
- NSWindowControllerのサブクラスであるクラスを作成します。 NewWindowController
- NewWindowControllerクラスのウィンドウxibを作成します。
ボタンをクリックしてコードとして:
NewWindowController *controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"]; [controllerWindow showWindow:self];
はい。ただし、このコードが何らかのfunc内にある場合、ウィンドウは閉じます。これが解決策です。
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];
}
...