Создание миниатюр с использованием NSImageView и собственного NSView - PullRequest
1 голос
/ 05 декабря 2011

Мне нужно сделать следующее в моем приложении какао (OS X):

  • Разрешить пользователю добавить изображение на NSImageView.
  • Как только изображение будетdrop проецирует на изображение прямоугольник фиксированного размера, указывая область изображения, которая будет использоваться в качестве эскиза.
  • Разрешите пользователю перетаскивать прямоугольник вокруг, чтобы точно указать нужный эскиз.
  • После позиционирования пользователь нажимает кнопку, которая сохраняет изображения и миниатюры в файлы.

Это вторая пуля, о которой я хотел бы получить некоторые отзывы.Моя идея состоит в том, чтобы сделать следующее:

  • В IB перетащите на мой взгляд NSImageView, который примет изображение.
  • После завершения удаления создайте еще один NSView(точно такой же размер, как у NSImageView) и спроецируйте его на NSImageView и отобразите прямоугольник для эскиза.Вероятно, мне придется создать подкласс NSView, чтобы он был прозрачным и поддерживал рисование и изменение положения прямоугольника.
  • Разрешить пользователю перетаскивать прямоугольник вокруг.Как только пользователь примет положение миниатюры, создайте миниатюру из изображения, проецируя прямоугольник на изображение в NSImageView.

Я понимаю, что для работы с перекрывающимися видами мне нужно включить слои (setWantsLayer: YES) для родительского представления.Тем не менее, я нашел несколько смешанных отчетов об этом, утверждая, что перекрывающиеся экземпляры NSView не могут быть сделаны, и это может быть сделано только с помощью CALayer.Также, если есть более простые способы захвата миниатюры с NSImageView, ввод очень важен.

...