2017-07-02 103 views
0

我有一個很大的問題,我一個星期以來無法解決。 我的情況:解僱nspopover不起作用

我有一個NSTableview和自定義單元格的ViewController。在每次出售中都是nsbutton。如果你按了一個按鈕,一個nspopover會出現。 但您可以用分配給解僱功能的「關閉」按鈕將其關閉。 我按了加號按鈕(在tableview外面),同樣的彈出窗口會出現,並且可以用「關閉」按鈕關閉而沒有問題。

我錯了什麼? 我通過谷歌驅動器附加了示例項目。 感謝您的幫助:

下載:https://drive.google.com/open?id=0B8PBtMQt9GdORUxQRXRISWR5dWs

+0

'NSTableViewController'?問題是什麼? – Willeke

+0

sry錯誤的解釋。包含NSTableView的View Controller。我的問題可以在第一篇文章中閱讀。 – Ghost108

+0

如果你按下一個按鈕,彈出窗口會出現,當你按下關閉按鈕時,彈出窗口消失沒有問題? – Willeke

回答

1

dismissViewController如果視圖控制器沒有呈現視圖控制器不工作(我不知道爲什麼)。從下載的項目開始,做如下修改:

  1. 移動showPopover行動從CustomCellTableViewController。將sender的類型更改爲NSButton

  2. 呈現視圖控制器而不是顯示彈出窗口。

    @IBAction func showPopover(_ sender: NSButton) { 
        let vcPopover = NSStoryboard(name: "Main", bundle: nil).instantiateController(withIdentifier: "vcPopover") as! NSViewController 
        self.presentViewController(vcPopover, asPopoverRelativeTo : sender.bounds, of : sender, preferredEdge: .maxX, behavior: .transient) 
    } 
    
  3. 連接按鈕的操作在表視圖到表視圖控制器和動作showPopover

+0

我做了所有步驟直到第2步,但通過第3步我有一個問題。我應該連接我的tableview的單元格按鈕與函數showPopover? – Ghost108

+0

好吧,我有。它完美的作品!非常感謝 – Ghost108