【问题标题】:dismiss nspopover doesn't work解雇 nspopover 不起作用
【发布时间】:2017-07-02 16:39:46
【问题描述】:

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

我有一个带有 NSTableview 和自定义单元格的 ViewController。在每个卖是一个nsbutton。如果你按下一个按钮,就会出现一个 nspopover。 但是您可以使用分配给解除功能的“关闭”按钮将其关闭。 我按下了加号按钮(在表格视图之外),将出现相同的弹出窗口,并且可以使用“关闭”按钮关闭而不会出现问题。

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

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

【问题讨论】:

标签: macos cocoa swift3 nspopover


【解决方案1】:

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

【讨论】:

  • 我会执行所有步骤,直到第 2 步。但是到第 3 步时我遇到了问题。我应该用函数 showPopover 连接我的 tableview 的单元格按钮?
猜你喜欢
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多