解雇nspopover不起作用

时间:2017-07-02 16:39:46

标签: macos cocoa swift3 nspopover

我有一个很大的问题,自一周以来我无法解决。 我的情况:

我有一个带有NSTableview和自定义单元格的ViewController。在每个卖出是一个nsbutton。如果按下按钮,将出现一个nspopover。 但你可以用“关闭”按钮关闭它,它被分配给dismiss-function。 我按下加号按钮(在桌面视图之外)会出现相同的弹出窗口,并且可以通过“关闭”按钮关闭而没有问题。

我错了什么? 我通过谷歌驱动器附加了示例项目。 谢谢你的帮助:

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

1 个答案:

答案 0 :(得分:2)

如果视图控制器没有呈现视图控制器(我不知道原因),则

gsub(/^t$/, ...)不起作用。从下载的项目开始,进行以下更改:

  1. dismissViewController操作从showPopover移至CustomCell。将TableViewController的类型更改为sender

  2. 显示视图控制器,而不是显示弹出窗口。

    NSButton
  3. 将表格视图中按钮的操作连接到表视图控制器和操作@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) }