IKImageView и полосы прокрутки - PullRequest
1 голос
/ 12 февраля 2010

У меня есть NSScrollView с IKImageView внутри для отображения изображений. Это похоже на работу.

Однако, если я сделаю окно меньше, чем изображение, полосы прокрутки появятся так, как должны, но НИЖЕ изображения заблокировано в нижней части окна, а не верхняя часть изображения заблокирована в верхней части окна. окно. Другими словами, я хочу, чтобы изображение не двигалось на экране при изменении размера окна справа внизу.

Я понимаю, почему это так, потому что во всех этих классах источник находится в левом нижнем углу, а не в верхнем левом. Тем не менее, он по-прежнему ведет себя неправильно. Если вы посмотрите на любой другой продукт (включая Preview, который, как я предполагаю, написан с некоторыми из этих библиотек), изображение / контент / что-либо еще заблокировано сверху, а не снизу.

Как мне это сделать?

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

Есть ли простой способ сделать это?

спасибо.

1 Ответ

0 голосов
/ 17 февраля 2010

Решение для дальнейшего использования: Создайте подкласс IKImageView только с одним переопределенным методом:

-isFlipped()
{
   return YES;
}

Этот подкласс также окажется полезным, если я обнаружу, что мне нужно повторно реализовать метод rotate: (id) и метод setImage: (NSImage), которые существуют в классе (и в случае rotate используются в DEMO (поставляется Apple), но не документировано и поэтому официально не поддерживается ...

...