NSToolbar - 工具栏空间项 - 打破默认约束

时间:2013-10-15 14:00:48

标签: xcode cocoa interface-builder autolayout

如果我从应用程序更改NSToolbar的大小,通过小尺寸,图标&文本,应用程序制动未满足的约束(试图关闭自动布局,或让应用程序生成其布局)

我的窗口包含一个工具栏和一个(左/右)拆分视图

[81687:303] Unable to simultaneously satisfy constraints:
(
    "<NSAutoresizingMaskLayoutConstraint:0x100635620 h=--& v=--& V:[NSToolbarItemViewer:0x101b4d930(5)]>",
    "<NSAutoresizingMaskLayoutConstraint:0x100634b30 h=--& v=-&- V:|-(11)-[_NSToolbarSpace:0x101b49a00]   (Names: '|':NSToolbarItemViewer:0x101b4d930 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x100634ad0 h=--& v=-&- V:[_NSToolbarSpace:0x101b49a00]-(12)-|   (Names: '|':NSToolbarItemViewer:0x101b4d930 )>"
)

Will attempt to recover by breaking constraint 
<NSAutoresizingMaskLayoutConstraint:0x100634b30 h=--& v=-&- V:|-(11)-[_NSToolbarSpace:0x101b49a00]   (Names: '|':NSToolbarItemViewer:0x101b4d930 )>

Set the NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have -[NSWindow visualizeConstraints:] automatically called when this happens.  And/or, break on objc_exception_throw to catch this in the debugger.

当我可视化约束错误

enter image description here

编辑:看起来像“工具栏空间项目”正在打破约束,如果我删除它,我运行正常

2 个答案:

答案 0 :(得分:4)

看起来像一个错误,我最后添加了我自己的空间项目,使用空白的NSView

答案 1 :(得分:3)

我有类似的问题。解决这个问题的方法是从默认工具栏允许的工具栏项中删除所有灵活空间。当我从对象浏览器再次添加灵活空间时,警告消失了。

在我的Git差异中,我看到结构似乎有所改变:

git diff