Objective c 如何在Mac中以编程方式关闭窗口?

Objective c 如何在Mac中以编程方式关闭窗口?,objective-c,cocoa,macos,window,xib,Objective C,Cocoa,Macos,Window,Xib,如何以编程方式关闭mac中的窗口?我已使用单击按钮从第一个窗口/xib打开了第二个窗口/xib。我需要在打开或单击按钮时以编程方式关闭第一个窗口/xib。我该怎么做 苹果有一些有用的示例代码。然而,它并没有直接解决这个问题;下面的代码没有 @interface CloseWindowAppDelegate : NSObject <NSApplicationDelegate> { NSWindow *window; IBOutlet NSWindow * secondW

如何以编程方式关闭mac中的窗口?我已使用单击按钮从第一个窗口/xib打开了第二个窗口/xib。我需要在打开或单击按钮时以编程方式关闭第一个窗口/xib。我该怎么做

苹果有一些有用的示例代码。然而,它并没有直接解决这个问题;下面的代码没有

@interface CloseWindowAppDelegate : NSObject <NSApplicationDelegate> {
    NSWindow *window;
    IBOutlet NSWindow * secondWindow;
    NSNib * secondNib;
}

@property (assign) IBOutlet NSWindow *window;

- (IBAction)openSecondWindow:(id)sender;

- (IBAction)closeSecondWindow:(id)sender;

@end

您可以使用“performClose”操作。选择nib文件(您不会关闭的窗口),打开连接检查器,用u按钮连接“performClose”操作。

我找了很久了! 简单的

[self close];
[self release];

为我工作。:-)

这适用于使用
Swift
NSStoryBoardSegue
的人,以下是实现此功能的相同方法

NSApplication.sharedApplication().mainWindow?.close() // close current window first
self.performSegueWithIdentifier("id_of_your_segue", sender: self) // open the second view by invoking the segue that is set to connect  two views.

对于orderOut,它显示我们的firstView可能不会响应orderOut!尝试[关窗];以前,但它没有工作!firstView是我的第一个sib类连接到第一个窗口的插座的名称是什么?令人惊讶的是,这似乎不是一个骗局,因此为了完整性起见,我提供了一个答案。这只是代码;正如@dreamlax的评论所暗示的,这里没有太多的讨论。>代码解释得很好。发现非常有用。stackoverflow新手,印象深刻。在这里,像你这样的人解释得很好。谢谢。:)@乔希->效果很好。非常感谢。您的代码对于我面临的问题很有用。:)
NSApplication.sharedApplication().mainWindow?.close() // close current window first
self.performSegueWithIdentifier("id_of_your_segue", sender: self) // open the second view by invoking the segue that is set to connect  two views.