自動レイアウトを使用するウィンドウで、次のコードを実行すると、自動レイアウトの「制約を同時に満たすことができません」という例外が発生します。
[self.toolbar insertItemWithItemIdentifier:@"MyID" atIndex:2];
例外の詳細は次のとおりです。
2014-04-25 17:31:41.354 AppName[5100:303] Unable to simultaneously satisfy constraints:
(
"<NSAutoresizingMaskLayoutConstraint:0x108adef10 h=--& v=--& V:[NSToolbarItemViewer:0x101d3ef80(5)]>",
"<NSAutoresizingMaskLayoutConstraint:0x108ade420 h=--& v=-&- V:|-(10)-[_NSToolbarSpace:0x101d37ae0] (Names: '|':NSToolbarItemViewer:0x101d3ef80 )>",
"<NSAutoresizingMaskLayoutConstraint:0x108ade3c0 h=--& v=-&- V:[_NSToolbarSpace:0x101d37ae0]-(11)-| (Names: '|':NSToolbarItemViewer:0x101d3ef80 )>"
)
Will attempt to recover by breaking constraint
<NSAutoresizingMaskLayoutConstraint:0x108ade420 h=--& v=-&- V:|-(10)-[_NSToolbarSpace:0x101d37ae0] (Names: '|':NSToolbarItemViewer:0x101d3ef80 )>
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.
ツールバー項目は、フレキシブル スペース項目のすぐ後ろに挿入されます。ツールバーの一部は IB で構成されていますが、多数のボタンを動的に設定する必要があります。
IB のツールバーのどこにも手動で指定された制約がないので、ここからどこへ行けばいいのかわかりません..
ツールバー項目がツールバーに挿入される限り、すべてが最終的に正常に機能します。