Постоянное замедленное представление Предупреждение для просмотра клипа в NSTableView
В моем приложении есть окно журнала, в котором отображаются строки в NSTableView:
![Window > View > Bordered Scroll View - Table View > Clip View > Table View]()
Когда я добавляю автоматические ограничения макета к окну, независимо от того, что я делаю, я получаю предупреждение Misplaced View для просмотра клипа:
![Misplaced View warning]()
Я попытался обновить его фрейм, обновить его ограничения и сбросить до предложенных ограничений, но ничего не избавит от предупреждения. Окно отображает и правильно изменяет размеры во время выполнения, и даже не представляется возможным добавлять ограничения к самому клипу.
Я переместил код в github, если вы хотите посмотреть его в Xcode: https://github.com/MagerValp/AutoDMG/tree/e57b0140e3fc3f7f9e0d4550341ed249a6cf5378. Код требует, чтобы SDK 10.10 был скомпилирован, но xib должен быть доступен для просмотра в Xcode 5 и выше.
Ответы
Ответ 1
Недавно я встретил ту же проблему, предупреждение о ожидаемом значении просмотра клипа на 17px больше фактического значения.
Я считаю, что это ошибка Xcode. И я нашел обходное решение для его исправления (кроме переопределения моей ОС до 10.9).
Решение состоит в том, чтобы отредактировать атрибуты tableView в IB, отключить "Заголовки". Не показывайте заголовки таблиц, и предупреждение будет волшебным. И мы можем догадаться, что по умолчанию заголовок таблицы равен 17px:)
Это просто обходной путь, а не идеальное решение. Это не наша вина. Лучшее решение - дождаться, когда Apple исправит эту ошибку Xcode.
Ответ 2
Иерархия подзаголовков Scrollviews является только совместимой с автоматической компоновкой.
Один из способов - ограничить просмотр клипа, чтобы он не беспокоил вас.
Затем в инспекторе отметьте те ограничения, которые нужно удалить во время выполнения.
Ответ 3
ScrollCiew
ClipCiew
TableView
Если ошибка возникает из ClipView.
Проверьте размер ScrollView, запомните его.
И затем нажмите ScrollView в качестве цели, откройте инспектор размера, включите Внутренний размер, используя Placeholder с размером ScrollView.