如何在awakeFromNib中打开NSAlert? (照顾窗口动画)

时间:2016-01-04 10:17:08

标签: objective-c macos cocoa

我遇到了在-awakeFromNib方法中创建的NSAlert的问题。

xib窗口动画需要一些时间,警报会被装箱并过早地添加到应用程序中(因此它与窗口分离)。

如果我延迟方法调用,一切正常,但我想这不是实现它的正确方法。我应该如何编码呢?​​

- (void) awakeFromNib
{
       ...
      [self performSelector:@selector(showAlertMethod) withObject:nil afterDelay:0.01];
}

1 个答案:

答案 0 :(得分:2)

要确保在主线程完成当前任务时执行该方法,您可以将方法调用分派给主队列:

dispatch_async(dispatch_get_main_queue(), ^ {
    [self showAlertMethod];
});