在加载时关闭OSX窗口

时间:2015-08-29 09:14:32

标签: objective-c xcode macos

我已经提出了一个能够关闭和关闭窗口的任务栏程序。密码是:

-(void) openWindow{
    NSLog(@"Opening Window");
    //put infront of all other apps
    [NSApp activateIgnoringOtherApps:YES];
    //show window
    [[_myView window] orderFront:self];
}

-(void) closeWindow{
    NSLog(@"Closing Window");
    //hide window
    [[_myView window] orderOut:self];
}

这是有效的perfectly

唯一的问题是,我现在希望程序在关闭窗口时开始,但是当我设置它时:

- (void)viewDidLoad {
    [super viewDidLoad];

    [self closeWindow];

}

什么都没发生,窗户保持打开状态?在你问之前 - 是'可见发射'被关闭!哈哈

如果我在视图中添加了0.001秒的延迟,那么加载就可以了!!

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.001 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
    [self closeWindow];
});

然后有一个可怕的闪烁......

1 个答案:

答案 0 :(得分:0)

如果有viewWillAppear方法,请尝试将[self closeWindow]放入。 或者你可能在她看到之前关闭窗口,所以在你调用closeWindow之后执行显示窗口的代码。

如果需要,请设置一些断点,以查看方法的执行顺序。