У меня есть экземпляр NSImageView. Я сказал InterfaceBuilder, чтобы позволить пользователю вставлять или перетаскивать изображение в это представление. Это работает. Тем не менее, я не вижу способа в NSImageView или связанной документации, чтобы получить уведомление, когда это действительно произойдет. Я ожидал делегата или некоторых таких, но я не смог его найти. Есть идеи?Как мой код может быть уведомлен, когда пользователь вставляет или перетаскивает изображение в NSImageView?
ответ
Это то, что делает Coboa Bindings.
Вместо того, чтобы разговаривать с видом, просто иметь свойство, значение которого является изображением, и привязать к нему привязку к изображению image
; то, когда вы хотите изменить изображение в представлении изображения самостоятельно, все, что вам нужно сделать, это установить значение свойства, и изображение будет замечено изменение.
Пользователь, вставляющий или перетаскивающий изображение, по сути, является тем же самым, частично обратным: паста или падение изменят значение изображения, которое затем установит значение вашего свойства, что приведет к чему-либо иначе связанный с ним, чтобы заметить изменение и получить новое значение, как и раньше.
Кроме того, чтобы вырезать существующий код send-explicit-messages-to-views, это потребует почти никакой работы с кодом. Единственный код, который вам нужен, это ваша собственность. Вы подключите привязку в IB.
См. the Key-Value Coding Programming Guide и the Cocoa Bindings Programming Topics.
Возможно, стоит отметить, что 'NSImageView' отправляет действие своей цели, когда на нее падает изображение, что является альтернативным способом его обработки. –
Роб Кенигер: Я бы зашел так далеко, что предложил сделать ответ. –
В конце концов я буду копаться в привязках, но пока я хочу стать хорошо знакомыми с объектами нижнего уровня. Я уверен, что понимание их сделает меня лучшим отладчиком, и пока я не нахожусь в крайнем сроке и имею роскошь не выбирать способ самого высокого уровня сделать все. Намек ответа Роба пахнет как победитель, и на самом деле я просто использовал его, чтобы отследить документацию и выяснить, как сообщить IB, что экземпляр NSImageView должен отправить сообщение моему контроллеру, когда изображение изменится. Роб должен превратить свой намек в правильный ответ, чтобы я мог его обозначить. –