【问题标题】:Closing NSViewController which presented as sheet关闭显示为工作表的 NSViewController
【发布时间】:2016-07-10 07:20:36
【问题描述】:

让我从一开始就告诉你,我有这个初始视图控制器。我从它转到主视图控制器,通过从初始视图控制器呈现它,并在初始视图控制器上执行performClose 以使其关闭。

现在我在主视图控制器中,从这里我将视图控制器呈现为工作表 [A]。

现在在 A 控制器中,从这里我将视图控制器呈现为工作表 [ B ]。

现在我在 B。现在我想从 B 视图控制器展示我的主视图控制器。我可以通过从故事板获取视图控制器并使用presentViewControllerAsModalWindow 呈现它来轻松做到这一点。但问题是同时,我想关闭B。但是我做不到。

我已经尝试过这个B [代码如下],它似乎不起作用,当我执行该操作时,mac会发出叮叮当当的声音。

 if let window = self.view.window {
     window.performClose(self)
  }

我可以在 B 控制器中执行dismissController(self),这不是重点。我不想关闭它,我只想完全关闭它并显示主页。或者还有其他解决方法吗?我想做的就是,通过关闭控制器 B 来呈现主视图控制器 [ B ]。

我对 OS X 环境很陌生,请帮助我。提前致谢。

【问题讨论】:

    标签: swift macos cocoa nsviewcontroller


    【解决方案1】:

    我知道这是一个老问题,但尽管如此。我遇到了完全相同的问题,这就是我发现的:

        if NSApplication.shared().keyWindow?.contentView != self.view {
            self.view.window?.endSheet((self.view.window?.attachedSheet)!)
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      相关资源
      最近更新 更多