2015-03-19 3 views
0

Я разрабатываю приложение для OS X, которое показывает небольшое окно (использует автоматический макет) при выходе. Размер окна составляет около 550 x 290 пикселей, и он исправлен.AutoLayout: разные версии ОС X, разные типы поведения?

Но я столкнулся поведение, которое кажется довольно странным:

  • Запуск приложения на OS X 10.7: размер небольшого окна примерно так же, как тройной большой, как это должно быть (ширина и высота)
  • Запуск приложения на OS X 10.8: ширина окна подходит, но его высота по-прежнему примерно вдвое больше, чем должно быть
  • Запуск приложения на OS X 10.9: размер окна равен I 've спроектировал его
  • Запуск приложения на OS X 10.0: то же (правильное) поведение, что и у 10.9

Я исправил все ограничения для исправления настроек (Xcode не отображает проблем с макетами). Может ли кто-нибудь дать мне подсказку, что там может произойти?

Я абсолютно уверен, что в представлении нет других (противоречащих или изменяющихся) ограничений.

Update

Ниже вы можете найти изображение, содержащее все ограничения окна. Ограничения самого окна (минимальный и максимальный размер) установлены на текущий (ожидаемый) размер. Изображение с левой стороны прикреплено к нижней, левой и верхней части, а его поведение масштабирования установлено на proportionally down. Поэтому образ не должен быть источником проблемы.

The constaints of my window

+1

Вы должны показать, каковы ограничения на самом деле. Что находится в окне? Является ли что-нибудь в нем больше, чем вы ожидаете (например, увеличенное изображение)? –

+0

Что произойдет, если вы используете инспектор размера, чтобы ограничить максимальный размер окна ожидаемым размером? – JWWalker

+0

@JWWalker Ограничения для минимального и максимального размера установлены на текущий размер. – Alex

ответ

0

Я нашел решение, которое работает. Я думаю, что это комбинация 2x изображения в каталоге активов (вызвала удвоенную высоту) и ярлыки в представлении. Этикетки содержат столько текста, что они либо должны автоматически их обернуть, либо растянуть их до тех пор, пока контент не будет соответствовать (похоже, Lion и Mountain Lion делают это).

Я добавил ограничение width на обе метки и зафиксировал его с его текущим значением (как указано в построителе интерфейса). Это работает для меня, поскольку AutoLayout, похоже, сохраняет ширину ярлыка и обертывает их содержимое (как и ожидалось).

Большое спасибо за подсказки.

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