首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Xcode 6在OSX10.10中使用NSSplitViewController

使用Xcode 6在OSX10.10中使用NSSplitViewController
EN

Stack Overflow用户
提问于 2014-11-17 21:54:35
回答 2查看 2.5K关注 0票数 6

根据关于NSSplitViewControllers的文档,关联的NSSplitView使用NSSplitViewController作为其委托。特别是在文档中,“拆分视图控制器充当其拆分视图对象(管理分隔符的对象)的委托。如果您覆盖拆分视图委托方法,则必须调用超级。”

我在接口生成器中实现了一个NSSplitViewController,并给了它一个类。但是,从来没有调用过任何splitView委托。此外,如果我只做一些事情,比如吐出splitView委托的NSLog (@"%@",self.splitView.delegate);,结果是"null“。但是,如果我在IB本身(通过将委托出口拖到NSSplitViewController)或内部代码(self.splitView setDelegate:self;)中分配委托,则会得到以下错误:

提出了一个不明确的例外情况。 SplitViewController的splitView无法使用autolayout,因为SplitViewController覆盖不兼容的委托方法。

我完全迷糊了。

EN

回答 2

Stack Overflow用户

发布于 2014-11-18 23:45:03

如果拆分视图的委托实现下列方法之一,则它将与自动布局不兼容。

代码语言:javascript
复制
splitView:constrainMinCoordinate:ofSubviewAt:
splitView:constrainMaxCoordinate:ofSubviewAt:
splitView:resizeSubviewsWithOldSize:
splitView:shouldAdjustSizeOfSubview:

https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKitOlderNotes/#10_8AutoLayout

而且由于NSSplitViewController需要使用自动布局(在文档中提到),所以这些方法与NSSplitViewController不兼容,不应该在子类中实现。

票数 20
EN

Stack Overflow用户

发布于 2020-06-06 17:33:37

延伸到泰勒的回答上。

在macOS 10.8中,苹果对NSSplitview进行了改进,包括尊重子视图的约束。苹果还引入了优先考虑NSSplitview的子视图。保持优先级是保持子视图大小的优先级,因此在调整splitview大小时,优先级最低的子视图将首先调整大小。

因此,要控制调整大小的行为,您必须调优SplitView项的保持优先级。这也可以直接在故事板中完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26982714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档