2013-11-19 3 views
9

Мне нужно отобразить NSImageView на resizable NSWindow. Изображение, отображаемое в представлении, должно уменьшаться, если оно слишком велико, чтобы соответствовать представлению изображения в widnow, и оно также должно изменять его размер при изменении размера окна. Я могу добиться правильного поведения с помощью Auto-Layout и установить значение imageScaling объекта NSImageView - NSImageScaleProportionallyDown. К сожалению, он не работает, если для свойства изображения imageFrameStyle установлено значение NSImageFrameNone (он работает для любых других опций, таких как NSImageFramePhoto или NSImageFrameGrayBezel). Я не хочу, чтобы какой-либо фрейм отображался, например, с помощью NSImageFrameNone, но отключение автоматического разрыва кадра - похоже, что с рамкой, установленной на NSImageFrameNone, изображение не уменьшено, а NSImageView масштабируется, чтобы соответствовать размеру отображаемого изображения. У кого-нибудь есть решение для этой проблемы?NSImageView не будет масштабировать изображение вниз, если стиль рамки NSImageFrameNone

ответ

21

Случается, что это проще, чем я думал. Проблема заключалась в автоматическом макетировании, а не в логике масштабирования NSImageView. Используя InterfaceBuilder с моим представлением изображения, я должен был изменить «Приоритет сопротивления сжатию содержимого» для более низкого значения (он находится на вкладке «Инспектор размера» в Xcode5). Это решило мою проблему, и изображение теперь масштабируется правильно при изменении размера окна.

+0

Не могли бы вы помочь мне в решении одной проблемы. На самом деле у меня есть представление с определенными размерами 817x460, у меня есть объекты в этом представлении, такие как NSButton, NSImageView и т. Д. Но когда я максимизирую представление, объекты не растягиваются, т. Е. Размер является постоянным даже при использовании автоматического макета и вашего решения , Не могли бы вы рассказать мне, как увеличить вид и объекты, чтобы сделать его совместимым с размером окна. Пожалуйста, помогите мне, спасибо :) –

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