[英]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.