我想添加一个NSWindow,简单的代码是:
NSWindow* myWindow;
myWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(100,100,300,300)
styleMask:NSTitledWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[myWindow makeKeyAndOrderFront:nil];
窗口出现一秒然后消失。 怎么了?
感谢您的回答。
答案 0 :(得分:10)
你没有保留窗口。
将.h中的NSWindow* myWindow;
定义为属性。
在.h
@property (strong)NSWindow* myWindow;
在.m
- (IBAction)button:(id)sender {
if (self.myWindow==nil){
self.myWindow= [[NSWindow alloc] initWithContentRect:NSMakeRect(100,100,300,300)
styleMask:NSTitledWindowMask
backing:NSBackingStoreBuffered
defer:NO];
}
[self.myWindow makeKeyAndOrderFront:NSApp];
}
编辑:
如果您想从同一个按钮打开多个窗口。创建一个数组
在.h
@property(strong) NSMutableArray *myWindowArray;
在.m
- (IBAction)button:(id)sender {
self.myWindow= [[NSWindow alloc] initWithContentRect:NSMakeRect(100,100,300,300)
styleMask:NSTitledWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[self.myWindowArray addObject:self.myWindow];
for (NSWindow *win in self.myWindowArray) {
[win makeKeyAndOrderFront:NSApp];
}
}
编辑2: