2013-10-15 2 views
5

Если я изменяю размер NSToolbar из приложения, с помощью небольшого размера, значки & текст, приложение тормозит на неудовлетворительных ограничениях (пытается отключить автозапуск или позволить приложению сгенерировать его макет)NSToolbar - Панель инструментов Space Item - нарушение ограничений по умолчанию

Мое окно состоит из панели инструментов и (слева направо) Разделить/внутри

[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. 

Когда я визуализировать ошибку Constraint

enter image description here

Edit: Похоже, «Панель инструментов Space Item» нарушает ограничение, если я удалить его, я прекрасно работает

ответ

2

выглядит как ошибка, я в конечном итоге добавив свой собственный элемент пространства, используя пустой NSView

+1

У меня была аналогичная проблема. И я решил устранить все гибкие пробелы как с панели инструментов * по умолчанию, так и с * Разрешенных элементов панели инструментов *. Когда я снова добавил ** Flexible Space ** из браузера объектов, это предупреждение исчезло. – Besi

+0

Да, это, кажется, одна из тех ошибок, которые никогда не будут исправлены. – SpaceDog

+0

Основываясь на моих переживаниях, ** Гибкое пространство ** можно зафиксировать, кстати, @Besi. Однако предмет ** ** всегда будет приводить к конфликту конфликта при добавлении обратно к панели инструментов по умолчанию. – lightpen

3

У меня была аналогичная проблема. И то, что исправляло проблему для меня, заключалось в удалении всех гибких пространств с панели по умолчанию и Допустимые элементы панели инструментов. Когда я снова добавил Flexible Space из браузера объекта, это предупреждение исчезло.

В моей Git дифф я вижу, что структура, кажется, несколько изменились:

git diff

+0

не работает для меня, после добавления Flexible Space из ошибки браузера объекта снова отображается –

Смежные вопросы