Macos 如何在窗口中显示图纸视图
如何实现下图中的视图。Macos 如何在窗口中显示图纸视图,macos,cocoa,appkit,Macos,Cocoa,Appkit,如何实现下图中的视图。 在系统首选项>网络中单击+按钮时显示的视图 我有以下问题: 这个视图系统是否有一个特定的名称(比如popover),因为我在Mac的很多地方都见过它 如何在IB中实现它 这可以在弹出窗口而不是NSWindow中完成吗?(或者只能在类似NSWindow的工具栏中完成) 更新: 更新标题以提高Cocoa中的可见性,这些称为工作表。看一看,然而,这是可怕的过时 您需要在要显示工作表的窗口上调用-beginSheet:completionHandler:。如果您有单窗口应用程
在
系统首选项>网络中单击+按钮时显示的视图
我有以下问题:
这个视图系统是否有一个特定的名称(比如popover),因为我在Mac的很多地方都见过它
如何在IB中实现它
这可以在弹出窗口而不是NSWindow中完成吗?(或者只能在类似NSWindow的工具栏中完成)
更新:
更新标题以提高Cocoa中的可见性,这些称为工作表。看一看,然而,这是可怕的过时
您需要在要显示工作表的窗口上调用-beginSheet:completionHandler:
。如果您有单窗口应用程序,您可以向AppDelegate请求窗口并按如下方式启动工作表
// This code should be in AppDelegate which implement the -window method
NSWindow *targetWindow = [self window]; // the window to which you want to attach the sheet
NSWindow *sheetWindow = self.sheetWindowController.window // the window you want to display at a sheet
// Now start-up the sheet
[targetWindow beginSheet:sheetWindow completionHandler:^(NSModalResponse returnCode) {
switch (returnCode) {
case NSModalResponseCancel:
NSLog(@"%@", @"NSModalResponseCancel");
break;
case NSModalResponseOK:
NSLog(@"%@", @"NSModalResponseOK");
break;
default:
break;
}
}];
您会注意到,当工作表完成时,它将返回一个特定的模态响应——我们将很快返回到这一点
接下来,您需要实现要在工作表中显示的内容;这必须在NSL窗口中完成。我发现使用NSWindowController并在单独的XIB文件中实现窗口要容易得多。例如,见下文
现在,您需要在自定义NSWindowController(或者如果您是老派并且喜欢管理自己的NIB加载,则为普通NSWindow)中实现代码,该代码将发出正确的模式响应。在这里,我将取消和确定按钮连接到以下操作方法
- (IBAction)cancelButtonAction:(id)sender {
[[[self window] sheetParent] endSheet:self.window returnCode:NSModalResponseCancel];
}
- (IBAction)OKButtonAction:(id)sender {
[[[self window] sheetParent] endSheet:self.window returnCode:NSModalResponseOK];
}
模型响应将被发送到完成处理程序块
谢谢。在popover中显示图纸怎么样?popover是一种不同的技术。您不会在popover中显示图纸,您只需要为popover提供一个要显示的视图。阅读人机界面指南,了解何时何地使用popover vs.sheets。Popover是Cocoa中非常新的技术,API也非常好。哇,你是对的,苹果的doc真的过时了,上面有一个全新的闪亮的答案。还有一个github上的示例项目,因为我必须自己解决它。