Objective c Autolayout不适用于NSSplitView和NSPageController与情节提要。这是苹果虫吗?
我刚刚在github上创建了一个空项目-->我在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
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]
}