2

Я сделал очень простой фиктивный проект, чтобы проиллюстрировать мою проблему (используя Xcode 8.1 10.12.1). У меня есть раскадровка с NSTabViewController с 2 вкладками, одна из которых - NSSplitViewController. Хотя кажется, что все работает отлично, я вижу следующее предупреждение во время выполнения:Проблема макета с NSSplitView внутри NSTabView - недостающие ограничения

«TabSplitViewDummy [3615: 89221] [Layout] Обнаруженные недостающие ограничения для < _NSSplitViewItemViewWrapper:. 0x6000001a0d20> Это не может быть размещен, потому что не хватает сдерживающих полностью определить размер и происхождение. Добавьте недостающие ограничения или установите translatesAutoresizingMaskIntoConstraints = YES, и для вас будут созданы ограничения. Если это представление выложено вручную на macOS 10.12 и более поздних версиях, вы можете отказаться от [супер-макета] из своего переопределить.Настроить точку останова на DETECTED_MISSING_CONSTRAINTS для отладки. Эта ошибка будет регистрироваться только один раз. "

Я попытался установить translatesAutoresizingMaskIntoConstraints = YES для всех представлений, а также ограничений установки - ничего не работало. До сих пор я узнал только 3 вещи:

  1. , когда я изменить порядок вкладок, так что вид раскола невидим на старте, нет никакого предупреждения, сообщение
  2. , когда я извлекаю вид вкладок и сделать раскол просмотра содержимого окна, нет предупреждающее сообщение
  3. , когда я установил символическую точку останова на DETECTED_MISSING_CONSTRAINTS, он получает удар в 6 раз, так что я предполагаю, что есть 6 отсутствуют ограничения

Я уже потерял дней с этим, что мне здесь не хватает?

Большое спасибо за вашу помощь !!!

GitHub dummy project

ответ

1

После почти теряя его, я, наконец, нашел решение. На всякий случай, если кто-то другой переживает те же проблемы, вот что сработало для меня: идите в раскадровку и подключите «представление» в NSTabViewController к «View Shadow Tab View». Вот и все. Вы ожидаете, что Xcode сделает это, когда вы настроите новый NSTabViewController, но это не так. Я не понимаю, почему, но почему-то это связано с Autolayout из NSSplitView. Если вы можете объяснить это подробно, сделайте это в комментариях.

+0

Я получаю ту же проблему после подключения вида вкладки vc. –

+0

Это странно. Я только что перепроверил макет проекта, и он все еще работал для меня. Вы попробовали это в своем собственном проекте или загрузили мой фиктивный проект? Может быть, там есть и другие вещи, которые нужно установить правильно, например, авторезистентность или ограничения или что-то еще ...? – MikeElmwood

+0

У меня такая же проблема с представлением вкладки, используя дисплей панели инструментов. Я попробовал ваше решение, но тогда панель инструментов больше не видна. –