2013-10-15 86 views
5

如果我通過小尺寸,圖標&文本更改了NSToolbar的大小,應用程序在未滿足的約束條件下剎車(嘗試關閉自動佈局或讓應用程序生成其佈局)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

看起來像一個bug,我結束了加入我自己的空間項目,使用空白的NSView

+1

我也有類似的問題。而解決問題的方法是從*默認工具欄*和*允許的工具欄項目*中刪除所有靈活的空間。當我再次從對象瀏覽器添加** Flexible Space **時,警告消失。 – Besi

+0

是的,它似乎是那些永遠不會修復的錯誤之一。 – SpaceDog

+0

根據我的經驗,**靈活空間**可以通過@Besi指出的方式進行修正。然而** Space **項目總是會導致禁忌衝突,只要將其添加回默認工具欄 – lightpen

3

我有類似的問題。而解決問題的方法是從默認工具欄允許的工具欄項目中刪除所有靈活空格。當我再次從對象瀏覽器添加靈活空間時,警告消失。

在我git的差異我看到結構似乎已經有所改變:

git diff

+0

不適用於我,添加靈活空間後從對象瀏覽器錯誤開始再次顯示 –