首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSwindow消失

NSwindow消失
EN

Stack Overflow用户
提问于 2012-12-31 11:33:21
回答 1查看 1.3K关注 0票数 5

我想添加一个NSWindow,简单的代码是:

代码语言:javascript
复制
NSWindow* myWindow;
myWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(100,100,300,300)
                                       styleMask:NSTitledWindowMask
                                         backing:NSBackingStoreBuffered
                                           defer:NO];
[myWindow makeKeyAndOrderFront:nil];

窗口出现了一秒,然后消失了。怎么了?

  • Xcode 4.5.2
  • MacBookPro i5 10.8.2

谢谢你的回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-31 11:55:49

你不能把窗户留着。

NSWindow* myWindow;在.h中定义为属性。

在.h中

代码语言:javascript
复制
@property (strong)NSWindow* myWindow;

在.m中

代码语言:javascript
复制
- (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中

代码语言:javascript
复制
@property(strong) NSMutableArray *myWindowArray;

在.m中

代码语言:javascript
复制
- (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:

找到application here

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14101028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档