【问题标题】:Open NSViewController As Sheet on MainMenu.xib在 MainMenu.xib 上打开 NSViewController 作为工作表
【发布时间】:2016-02-16 01:43:04
【问题描述】:

我使用 Xib 而不是 Storyboard 打开了新的 Cocoa 项目。单击“Livelli”按钮时,我想打开一个工作表视图控制器。按钮“Livelli”在 MainMenu.xib 中。

我连接按钮“Livelli”来执行操作并编写了以下代码:

@IBAction func LivelliBtn(sender: AnyObject) {
    window.contentViewController?.presentViewControllerAsSheet(LevelScrollController())
    Swift.print("abc")
}

LevelScrollController 是一个 NSViewController,它会显示一个自定义的 NSView 和按钮来关闭自己。

控制台显示“abc”,所以我们需要了解“LivelliBtn”是在单击按钮但未打开任何工作表时执行的!

此外,如果我将函数“LivelliBtn”编辑如下:

@IBAction func LivelliBtn(sender: AnyObject) {
    window.contentViewController = LevelScrollController()
    window.contentViewController?.presentViewControllerAsSheet(LevelScrollController())
    Swift.print("abc")
}

presentViewControllerAsSheet 方法工作正常。问题是我更换了背景视图控制器,当我关闭工作表时,我没有返回到以前的视图......

如何在主菜单窗口上显示工作表?

【问题讨论】:

    标签: xcode swift macos cocoa


    【解决方案1】:

    最后我创建了第二个“MainViewController”来替换 MainMenu。

    在 AppDelegate 中我添加了这一行

     func applicationDidFinishLaunching(aNotification: NSNotification) {
        window.contentViewController = MainViewController()
    
    }
    

    MainViewController 是一个 ViewController,它对工作表进行分类

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多