[英]Present a view modally in NSDocument's window
我有一个NSDocument
子类,它具有自己的xib文件。 另外,我也有一个NSViewController
子类及其自己的xib文件,并且我想像这样一样以模态形式呈现其视图。
问题是,它始终将其显示为没有标题栏的单独浮动窗口。
我要呈现的视图包含在该xib文件的一个窗口中。 是的,它是Mac OS X 10.10。 这是代码。
@IBAction func didPressEditF(sender: AnyObject) {
let controller = ViewController(nibName: "ViewController", bundle: nil)
let window = self.windowControllers[0].window as NSWindow
window.beginSheet(controller.view.window, completionHandler: didEndPresentingF)
}
如果您能帮助我使用Objective-C,也可以。
好的。 我想到了。
首先。 我们需要ViewController
类的一个属性,以便它在显示后不会被释放。
var controller: ViewController?
然后,我们需要一个将返回当前文档窗口的方法。 以某种方式将self.windowControllers[0].window as NSWindow
无效。
func window() -> NSWindow {
let windowControllers = self.windowControllers
let controller = windowControllers[0] as NSWindowController
let window = controller.window
return window
}
最后,打开工作表窗口的代码将如下所示:
@IBAction func didPressEditF(sender: AnyObject) {
controller = ViewController(nibName: "ViewController", bundle: nil)
self.window().beginSheet(controller!.view.window, completionHandler: didEndPresentingF)
}
Apple必须对过时的文档进行处理。
您不必调用文档的窗口控制器,而可以调用windowForSheet(NSDocument上的方法)。 例如self.windowForSheet。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.