Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSView覆盖NSPageController在转换时消失_Cocoa_Drawing_Nsview_Nsviewcontroller - Fatal编程技术网

Cocoa NSView覆盖NSPageController在转换时消失

Cocoa NSView覆盖NSPageController在转换时消失,cocoa,drawing,nsview,nsviewcontroller,Cocoa,Drawing,Nsview,Nsviewcontroller,我有一个包含8个左右NSViewController的NSPageController。当鼠标在窗口内时,我希望有一个半透明的底部栏,而不管鼠标在哪里,都要有一个半透明的顶部栏 我将顶部栏和底部栏以及NSPageControllers viewDidLoad()方法中的约束添加到视图中 它们在第一页上显示得很好,但当我开始从一个页面过渡到另一个页面时,新的NSViewController会在重叠视图上重新绘制,然后消失。我可以验证它们是否在NSViewControllers下,因为我会一直拖动到

我有一个包含8个左右NSViewController的NSPageController。当鼠标在窗口内时,我希望有一个半透明的底部栏,而不管鼠标在哪里,都要有一个半透明的顶部栏

我将顶部栏和底部栏以及NSPageControllers viewDidLoad()方法中的约束添加到视图中

它们在第一页上显示得很好,但当我开始从一个页面过渡到另一个页面时,新的NSViewController会在重叠视图上重新绘制,然后消失。我可以验证它们是否在NSViewControllers下,因为我会一直拖动到特定的一侧,这样我就可以看到它们在下面

知道为什么会发生这种情况/我如何避免

代码:


提前谢谢

这似乎是一个未解决的错误。这对我来说是固定的:

  • 如果
    pageController
    正在填充窗口的视图,请将
    contentView
    的背景设置为nil。这样,我们将看到的背景始终是
    pageController
    的背景

  • 使用此方法对视图进行排序:

    func pageControllerDidEndLiveTransition(_ pageController: NSPageController) {
        let controller = selectedViewController as! (YOUR_NSVIEWCONTROLLER_CLASS)
        controller.view.superview?.addSubview(controller.view, positioned: .below, relativeTo: TOOLBAR)
    }
    
  • 为您的
    ViewController
    类名替换
    ViewController\u类
    ,然后为您希望在顶部看到的视图替换
    TOOLBAR

    请显示您的代码。。。。
    func pageControllerDidEndLiveTransition(_ pageController: NSPageController) {
        let controller = selectedViewController as! (YOUR_NSVIEWCONTROLLER_CLASS)
        controller.view.superview?.addSubview(controller.view, positioned: .below, relativeTo: TOOLBAR)
    }