我正在寻找一个最简单的例子,它显示一个窗口打开另一个窗口然后关闭它。
我似乎被卡住的地方是NIB以及插座的接线方式。我可以轻松创建窗口;关闭它是一个挑战。
非常感谢任何建议!
我在下面附上我的代码。我认为我想做的很简单,但它不起作用。感谢弗朗西斯,我现在可以打开和关闭窗口,但是一旦我尝试再次打开它,应用程序就会崩溃(EXC_BAD_ACCESS
)。我确信这是由于我对 NIB 与类的关系理解不足。在大多数语言中,我只需要实例化一个窗口的新实例,然后将其关闭。
我有 2 个窗口MainMenu.xib
。(我更愿意将窗口放在单独的 NIB 中,但这似乎会产生其他问题!) AppDelegate 有 2 个出口,分别是 window (原始)和 otherWindow (创建的第二个窗口)。
第一个窗口有 2 个按钮:“打开窗口”和“关闭窗口”,它们连接到代码中的 2 个方法。
代码:
MyTestAppDelegate.h
#import <Cocoa/Cocoa.h>
@interface MyTestAppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
NSWindow *otherWindow;
}
@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSWindow *otherWindow;
- (IBAction)openOtherWindow:(id)sender;
- (IBAction)closeOtherWindow:(id)sender;
@end
MyTestAppDelegate.c
#import "MyTestAppDelegate.h"
@implementation MyTestAppDelegate
@synthesize window;
@synthesize otherWindow;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
}
- (IBAction)openOtherWindow:(id)sender
{
[otherWindow makeKeyAndOrderFront:sender];
}
- (IBAction)closeOtherWindow:(id)sender
{
[otherWindow close];
}
@end