首页 > 解决方案 > 为什么视图控制器不跟随窗口控制器在“模态”中的外观?

问题描述

有一个窗口控制器连接到视图控制器

当菜单项单击时,我想将该窗口显示为模态

在此处输入图像描述

之后显示窗口,但我发现视图控制器不遵循窗口控制器的外观

在此处输入图像描述

任何窗口控制器外观也不起作用..包括内容大小、窗口标题......等

那么问题是什么?

标签: xcodemacoscocoastoryboardnswindowcontroller

解决方案


考虑到您只呈现视图控制器,而不是您定义的任何相关窗口控制器,如果您使用presentAsModalWindow(_ viewController: NSViewController)

viewController 在显示时成为窗口的委托和 contentViewController

您可以在自定义视图控制器的 viewWillAppear 中进行窗口自定义

    override func viewWillAppear() {

    let closeButton = view.window?.standardWindowButton(.closeButton)
    closeButton?.isHidden = true

}

viewDidLoadwindow 属性中仍将为 nil。

如果您想展示您的窗口控制器,请执行以下操作触发我的菜单项。

    @IBAction func showMyWindowController(sender:NSMenuItem){

    let storyboard = NSStoryboard(name: "Main", bundle: nil)
    let windowController = storyboard.instantiateController(withIdentifier: "MyWindowController") as! NSWindowController

    windowController.showWindow(self)

}

希望这可以帮助


推荐阅读