Как мой код получит уведомление, когда пользователь вставит или перетащит изображение в NSImageView? - PullRequest
4 голосов
/ 21 марта 2010

У меня есть экземпляр NSImageView.Я сказал InterfaceBuilder, чтобы пользователь мог вставить или перетащить изображение в это представление.Это работает.Тем не менее, я не вижу способа в NSImageView или соответствующей документации получить уведомление, когда это действительно произойдет.Я ожидал делегата или что-то подобное, но я не смог его найти.Есть идеи?

Ответы [ 2 ]

1 голос
/ 21 марта 2010

Это то, что Какао Биндингс делает лучше всего.

Вместо того, чтобы разговаривать с представлением, просто имейте свойство, значение которого является изображением, и связывайте привязку представления изображения image к нему; затем, когда вы захотите изменить изображение в представлении изображения самостоятельно, все, что вам нужно сделать, это установить значение свойства, и представление изображения заметит это изменение.

Пользователь, вставляющий или перетаскивающий изображение, по сути, является тем же самым, частично наоборот: вставка или удаление изменят значение представления изображения, которое затем установит значение вашего свойства, что вызовет что-либо еще привязан к нему, чтобы заметить изменение и подобрать новое значение, как и раньше.

Помимо удаления существующего кода отправки-явных-сообщений-для-просмотра, это почти не потребует никакой работы с кодом: единственный код, который вам нужен, - это ваша собственность. Вы подключите привязку в IB.

См. Руководство по программированию кодирования значения ключа и Темы программирования привязок какао .

0 голосов
/ 02 октября 2018

Как по мне, лучший способ переопределить функцию

- (Недействительными) клейстер: (идентификатор) отправителя

Но только если он у вас есть в классе на основе NSView, у которого NSResponder является родительским

...