我可以通过代码显示我的自定义NSWindowController作为模态窗口:
TSAppDelegate* appDelegate = (TSAppDelegate*) [[NSApplication sharedApplication] delegate];
NSWindow* mainWindow = appDelegate.window;
[NSApp beginSheet: [self window]
modalForWindow: mainWindow
modalDelegate: NULL
didEndSelector: NULL
contextInfo: NULL];
int acceptedModal = (int)[NSApp runModalForWindow: [self window]];
[NSApp endSheet: [self window]];
[[self window] close];
有效。但我需要非模态窗口。它必须显示为模态(见图)并且是非模态的。
我试过
TSAppDelegate* appDelegate = (TSAppDelegate*) [[NSApplication sharedApplication] delegate];
NSWindow* mainWindow = appDelegate.window;
[[self window] setParentWindow: mainWindow];
或
[mainWindow addChildWindow: [self window] ordered: NSWindowAbove];
它作为非模态工作,但显示为普通的弹出窗口。
有可能吗?
答案 0 :(得分:3)
您似乎只想让一个窗口落在您的视图上,但不是模态的。
您可以使用单独的视图来动画进入和离开位置,而不是使用工作表。
您必须自己做一些工作:设置正确的位置,动画视图,响应事件等。