英语轻松读发新版了,欢迎下载、更新

NSSplitViewController的问题

surefire 发布于 2016年01月26日
无人欣赏。

今天在修改原来的代码时把程序结构给动了一下,遇到一个布局问题,之前我是在IB上拖视图的方式把其他视图一个一个堆砌到SplitView上,现在我想换成代码的方式,定义了一个View,继承自NSSplitViewController,但是如下代码有问题: splitView(:shouldAdjustSizeOfSubview)

这个函数没法重载,说与AutoLayout不兼容,怎么破?

我要的效果是

点击窗体最大化按钮时,SplitView的左边栏宽度不变化,除非用户通过divider去拖动

就跟Safari一样的效果。

共3条回复
tinyfool 回复于 2016年01月26日

@sycx 少爷看看

tinyfool 回复于 2016年01月27日

有点听不懂你的描述

surefire 回复于 2016年01月27日

2楼 @tinyfool 我也有点担心没描述清楚。

一般窗体最大化时SplitView的2个子视图是按比例重绘宽度,而我的需求是把左边的导航视图固定宽度,不按比例变大。

之前不存在这个问题是因为我通过拖放视图的方式在IB里把一个NSSplitView放到我的NSViewController里(NSSplitView的delegate指向NSViewController),然后extension这个NSViewController,实现splitView(:shouldAdjustSizeOfSubview)这个方法即可。

现在我改了,通过编码的方式继承NSSplitViewController自己实现了一个自定义的SplitView控制器,然后在override这个splitView(:shouldAdjustSizeOfSubview)方法时,Xcode提示错误,错误原因是这个方法与AutoLayout不兼容。stackoverflow上也有描述这个问题,不过没有给出具体的解决办法。

登录 或者 注册