我可以为NSWindow创建一个模型表,我使用了以下连接代码。
[NSApp beginSheet:self.view modalForWindow:[[NSApplication sharedApplication] mainWindow] modalDelegate:self didEndSelector:nil contextInfo:nil];
我无法为NSView创建模态,是否可以为NSView创建模态表?
答案 0 :(得分:1)
当然可以,但你必须将它嵌入新创建的窗口中。 e.g。
NSView *view = [[NSView alloc] initWithFrame:NSMakeRect(100, 100, 300, 300)];
self.windowSheet = [[NSWindow alloc] initWithContentRect:[view frame] styleMask:NSTitledWindowMask backing:NSBackingStoreBuffered defer:YES];
[NSApp beginSheet:self.windowSheet modalForWindow:[[NSApplication sharedApplication] mainWindow] modalDelegate:self didEndSelector:nil contextInfo:nil];
正如您在文档中看到的那样,beginSheet的可接受参数只是窗口或其子类(例如NSPanel)
- (void)beginSheet:(NSWindow *)sheet modalForWindow:(NSWindow *)docWindow modalDelegate:(nullable id)modalDelegate didEndSelector:(nullable SEL)didEndSelector contextInfo:(null_unspecified void *)contextInfo NS_DEPRECATED_MAC(10_0, 10_10, "Use -[NSWindow beginSheet:completionHandler:] instead");