关闭 nspopover 不起作用

dismiss nspopover doesn't work

我有一个大问题,一个星期以来我都无法解决。 我的情况:

我有一个带有 NSTableview 和自定义单元格的 ViewController。在每次销售中都有一个 nsbutton。如果你按下一个按钮,一个 nspopover 将会出现。 但您可以使用分配给关闭功能的 "close" 按钮关闭它。 我你按下加号按钮(在表格视图之外)将出现相同的弹出窗口并且可以使用 "close" 按钮关闭而不会出现问题。

我做错了什么? 我通过 google 驱动器附加了示例项目。 感谢您的帮助:

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

如果视图控制器没有呈现视图控制器,

dismissViewController 将不起作用(我不知道为什么)。从下载的项目开始,进行以下更改:

  1. showPopover 操作从 CustomCell 移动到 TableViewController。将 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. 将 table 视图中的按钮操作连接到 Table 视图控制器和操作 showPopover