Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Objective c Autolayout不适用于NSSplitView和NSPageController与情节提要。这是苹果虫吗?_Objective C_Macos_Cocoa_Autolayout_Nslayoutconstraint - Fatal编程技术网

Objective c Autolayout不适用于NSSplitView和NSPageController与情节提要。这是苹果虫吗?

Objective c Autolayout不适用于NSSplitView和NSPageController与情节提要。这是苹果虫吗?,objective-c,macos,cocoa,autolayout,nslayoutconstraint,Objective C,Macos,Cocoa,Autolayout,Nslayoutconstraint,我刚刚在github上创建了一个空项目-->我在NSPageController上遇到了很多问题。我发现解决方案是不使用自动布局 尝试在您的NSSplitView上使用NSAutoresizingMaskOptions。 首先,删除NSPageController中的所有约束 然后: 或 编辑 基于您的项目制作了一个项目我在Pagecontroller中也遇到了同样的问题: 并使用给定的代码进行求解: func pageController(_ pageController: NSPageCo

我刚刚在github上创建了一个空项目-->我在
NSPageController
上遇到了很多问题。我发现解决方案是不使用自动布局

尝试在您的
NSSplitView
上使用
NSAutoresizingMaskOptions
。 首先,删除
NSPageController
中的所有约束

然后:

编辑


基于您的项目制作了一个项目

我在Pagecontroller中也遇到了同样的问题:

并使用给定的代码进行求解:

 func pageController(_ pageController: NSPageController, viewControllerForIdentifier identifier: String) -> NSViewController {
    switch identifier {
    case "formController":
        let controller = NSStoryboard(name: "Main", bundle:nil).instantiateController(withIdentifier: "formController") as! FormController
        controller.view.autoresizingMask = [.height , .width]
        return controller
    default:
        return self.storyboard?.instantiateController(withIdentifier: identifier) as! NSViewController
    }
}

func pageController(_ pageController: NSPageController, identifierFor object: Any) -> String {

    return String(describing: object)

}

func pageControllerDidEndLiveTransition(_ pageController: NSPageController) {
    print(pageController.selectedIndex)

    pageController.completeTransition()
     pageController.selectedViewController!.view.autoresizingMask = [.height , .width]

}

嗨,好的,我把这个放在我的代码里的什么地方?我已经试着把它放进我的代码中,但它不起作用。我有上面相同的代码,你介意告诉我该放哪一部分吗?我在主视图控制器的viewDidLoad中使用了它,该主视图控制器包含NSPageController.Ok。一个问题,你的意思是你在代码中这样使用它吗?或者你的意思是在我上面提供的代码中使用了它?因为在我上面提供的代码中,viewDidLoad没有对splitView的引用。。上面的参考代码也使用了故事板对不起,我错过了你的代码。我检查了一下,没能把它修好。视图的大小应该合适,但是当有多个控制器时,错误仍然会发生-我明天会查看它,我们的答案是正确的。如果你不更新你发布的答案来反映你在代码中所做的事情,那么我会稍后再做。非常感谢!
splitView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
splitView.frame = pageController.view.bounds;
splitView.autoresizingMask = [.ViewWidthSizable, .ViewHeightSizable]
splitView.frame = pageController.view.bounds
 func pageController(_ pageController: NSPageController, viewControllerForIdentifier identifier: String) -> NSViewController {
    switch identifier {
    case "formController":
        let controller = NSStoryboard(name: "Main", bundle:nil).instantiateController(withIdentifier: "formController") as! FormController
        controller.view.autoresizingMask = [.height , .width]
        return controller
    default:
        return self.storyboard?.instantiateController(withIdentifier: identifier) as! NSViewController
    }
}

func pageController(_ pageController: NSPageController, identifierFor object: Any) -> String {

    return String(describing: object)

}

func pageControllerDidEndLiveTransition(_ pageController: NSPageController) {
    print(pageController.selectedIndex)

    pageController.completeTransition()
     pageController.selectedViewController!.view.autoresizingMask = [.height , .width]

}