【发布时间】:2015-02-08 02:41:13
【问题描述】:
我在依赖于完成处理程序完成的完成处理程序之后有代码。
openFilePanel.beginWithCompletionHandler({ (result) -> Void in
if result == NSFileHandlingPanelOKButton{
self.fileURL = openFilePanel.URL
self.window.title = self.fileManager.displayNameAtPath(self.fileURL!.absoluteString!)
self.pathControl.URL = self.fileURL
self.webView.mainFrameURL = self.fileURL!.absoluteString!
self.fileDes = open("\(self.fileURL!.path!)", O_RDONLY)
println("File Des:\(self.fileDes)")
}
})
println("File Desc:\(self.fileDes)")
上面代码中的最后一个 println 语句在用户有机会选择文件并在 NSOpenPanel 中单击“确定”之前执行。 有没有办法延迟进一步的代码运行,直到实际选择了 Ok 按钮?
【问题讨论】:
-
println进入完成块怎么样? -
同意。如果您的目标是将文件信息传回给某个调用例程,那么如果您自己的代码也可以使用 completionHandler 模式。
标签: macos cocoa swift nsopenpanel