我正在编写一个应用程序,该应用程序将逐步处理大量数据,当它遇到特定条件时,我想显示一个自定义对话框,允许用户编辑一些数据信息。我已经尝试过使用模态定序。
但是,当我运行代码时,它将立即打开所有对话框。即使打开了“模式”对话框,它也会继续浏览数据。
示例:
for x in 1...10 {
print("X is: \(x)")
self.presentAsModalWindow(sheetViewController)
}
这将显示10个窗口...它并不是真正的模式窗口。
我希望它像NSAlert一样工作,其中的执行将停止,直到关闭对话框为止。 NSAlert无法使用,因为我需要模态窗口上的教科书和其他控件。
有人对如何实现这一目标有任何想法吗?
谢谢!
答案 0 :(得分:0)
使用而不是presentAsModalWindow,
NSApp.runModal(for: NSPanel(contentViewController: sheetViewController))
在SheetViewController中,您必须根据逻辑关闭modalWindow。
@IBAction func buttonClicked(_ sender: NSButton) {
if NSApp.modalWindow == self.view.window && NSApp.modalWindow!.isVisible {
NSApp.stopModal() // Use .stopModal(withCode: .OK) if response has to be sent
self.view.window?.close()
}
}