Как я могу программно закрыть окно в cocoa mac? Я открыл второе окно /xib из первого окна /xib, нажав кнопку. Мне нужно закрыть первое окно /xib программно при открытии или нажатии кнопки. Как я могу это сделать?
Как программно закрыть окно в Cocoa Mac?
Ответ 1
У Apple есть полезный пример кода Загрузка Nib. Однако он не решает этот вопрос напрямую; следующий код.
@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
#import "CloseWindowAppDelegate.h"
@implementation CloseWindowAppDelegate
@synthesize window;
- (IBAction)openSecondWindow:(id)sender {
secondNib = [[NSNib alloc] initWithNibNamed:@"SecondWindow" bundle:nil];
[secondNib instantiateNibWithOwner:self topLevelObjects:nil];
[secondWindow makeKeyAndOrderFront:nil];
}
- (IBAction)closeSecondWindow:(id)sender {
[secondWindow close];
[secondNib release];
}
@end
Ответ 2
Я искал это целую вечность! Простой
[self close];
[self release];
работал у меня.:-)
Ответ 3
Это для тех, кто использует 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.
Ответ 4
U может использовать действие "выполнитьClose". Выберите nib файл (ваше окно, которое не будет закрыто), откройте "Инспектор подключений", подключите действие "выполнить закрытие" с помощью кнопки u.