簡體   English   中英

在NSDocument的窗口中模態顯示視圖

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM