我正在使用可可开发基于macOS文档的应用程序。我想进行类似XCode启动的行为,即:在一个窗口中,开始一个模态视图,其控制器由viewController
称为presentViewControllerAsSheet:
,然后单击“下一步”按钮,显示通过运行[self saveDocument:self]
来NSSavePanel。
我的代码是:
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]
[self.contentViewController presentViewControllerAsSheet:viewController;
//...some set ups about the NSButton on the view.
//And in the method to handle the Next Button being clicked:
[self saveDocument:self];
运行应用程序后,当我单击“下一步”按钮时,没有任何反应。
答案 0 :(得分:0)
我自己只是在解决这个问题。我正在从辅助控制器回叫到要保存数据的主文档类,并且尝试调用save()
时未显示模式对话框。事实证明,我必须显式地回调主线程以确保显示UI:
newServerWindowController?.saveNewDocument = { remote in
DispatchQueue.main.async {
guard let newDoc = self.document else { return }
newDoc.remote = remote
newDoc.save(self)
self.windowController?.update()
}
}
希望这会有所帮助!