(Mac) Изменение размера панели - PullRequest
3 голосов
/ 03 февраля 2011

Я создал приложение для Mac, которое использует горизонтальное представление изменения размера (технически представление изменения размера BWToolkit), которое связано с кнопкой toggleCollapse. После нескольких раз сворачивания и расширения панели это происходит (см. Изображение). Правый табличный вид должен находиться на одном уровне с разделителем панели. У любого есть информация о том, почему это происходит. Я тщательно отрегулировал свое выравнивание и привязки, чтобы они были правильными, но кажется, что это странная проблема, которая мешает взгляду?

Table should be flush with panel divider..

РЕДАКТИРОВАТЬ: У кого-нибудь нет этой проблемы? Любой вклад будет полезен! Может быть, мне просто нужно начать все сначала?

1 Ответ

4 голосов
/ 11 февраля 2011

Это известная ошибка в самом BWSplitView, связанная с тем, как анимация представления и таймеры взаимодействуют в этом представлении. Подробности здесь:

http://bwalkin.lighthouseapp.com/projects/36323/tickets/34-split-view-doesnt-resize-subview-properly-during-a-toggle-uncollapse-after-manual-collapse

Как правило, до того, как представление анимируется, autoresizesSubviews не устанавливается, так что представление можно свернуть / развернуть, не затрагивая его содержимое; Затем запланирован таймер для восстановления свойства autoresizesSubviews после завершения анимации. Но (конечно) анимация может иногда заканчиваться немного раньше или позже, чем срабатывает запланированный таймер; поэтому автоматическое изменение размера включено до завершения анимации, что приводит к изменению размера на несколько пикселей. Как вы, вероятно, видели, подпредставления имеют тенденцию немного двигаться, поскольку представление свернуто и не свернуто.

«Полное» исправление для этого состояло бы в том, чтобы восстановить авторазмер, когда CAAnimation завершил использование обратного вызова, но это еще не было реализовано. Однако в этой теме «Роберт Пейн» опубликовал версию BWSplitView.m, в которой используется немного другой подход - размеры видов записываются до свертывания и восстанавливаются после расширения. Я применил этот патч сам (я думаю, что он не будет компилироваться сначала - но это просто вопрос необъявленной переменной?) И могу подтвердить, что это действительно решает проблему.

Дайте мне знать, если вы хотите BWSplitView.m, который успешно компилируется, или копию скомпилированной среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...