模态 sheet 在 applicationdidfinishlaunching 中不工作?
Modal sheet not working in applicationdidfinishlaunching?
我正在尝试让 sheet 在应用程序完成启动时以模态方式显示。如果我将代码放在通用操作中并在应用程序启动后的某处执行它,它会按预期工作并且 sheet 会很好地下降。如果我采用相同的代码并将其放在 applicationdidfinishlaunching 中,sheet 将显示为单独的 window(这不是我需要的)。
[NSApp beginSheet:settingsWindow
modalForWindow:[NSApp keyWindow]
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
[NSApp runModalForWindow:settingsWindow];
[NSApp endSheet:settingsWindow];
[settingsWindow orderOut:self];
启动时可见选项已禁用。感谢您的任何建议。我也在 awakefromnib 中尝试过,结果同样不正确。
编辑:使用[self performSelector:@selector(someAction:) withObject:self afterDelay:0.5];其中 someAction 的内容如上,产生正确的结果。这是为什么?
NSApp
的beginSheet: modalForWindow: modalDelegate: didEndSelector: contextInfo:
和endSheet:
是deprecated in OS X 10.10. You should instead use beginSheet: completionHandler: on NSWindow模态显示sheetwindow的实例。
NSWindow *mainWindow = [NSApp windows][0];
[mainWindow beginSheet:settingsWindow completionHandler: nil];
顺便问一下,[NSApp keyWindow]
return 是 didFinishLaunching
中的一个实例吗?
我正在尝试让 sheet 在应用程序完成启动时以模态方式显示。如果我将代码放在通用操作中并在应用程序启动后的某处执行它,它会按预期工作并且 sheet 会很好地下降。如果我采用相同的代码并将其放在 applicationdidfinishlaunching 中,sheet 将显示为单独的 window(这不是我需要的)。
[NSApp beginSheet:settingsWindow
modalForWindow:[NSApp keyWindow]
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
[NSApp runModalForWindow:settingsWindow];
[NSApp endSheet:settingsWindow];
[settingsWindow orderOut:self];
启动时可见选项已禁用。感谢您的任何建议。我也在 awakefromnib 中尝试过,结果同样不正确。
编辑:使用[self performSelector:@selector(someAction:) withObject:self afterDelay:0.5];其中 someAction 的内容如上,产生正确的结果。这是为什么?
NSApp
的beginSheet: modalForWindow: modalDelegate: didEndSelector: contextInfo:
和endSheet:
是deprecated in OS X 10.10. You should instead use beginSheet: completionHandler: on NSWindow模态显示sheetwindow的实例。
NSWindow *mainWindow = [NSApp windows][0];
[mainWindow beginSheet:settingsWindow completionHandler: nil];
顺便问一下,[NSApp keyWindow]
return 是 didFinishLaunching
中的一个实例吗?