Какао NSTextField Drag & Drop требует подкласса… Правда?

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

В документах говорится:

Хотя NSDraggingDestination Мне никогда не приходилось использовать что-либо, кроме самого NSWindow в качестве NSDraggingDestination. При использовании окна в качестве универсального пункта назначения для перетаскивания NSWindow будет передавать ...

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

В документах говорится:

Хотя NSDraggingDestination У меня никогда не было возможности использовать что-либо, кроме самого NSWindow в качестве NSDraggingDestination. При использовании окна в качестве универсального пункта назначения для перетаскивания NSWindow будет передавать ...

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

В документах говорится:

Хотя NSDraggingDestination объявленный неофициальным протоколом, NSWindow и NSView подклассы вас создать для принятия протокола нужно только реализовать те методы, которые уместно. (NSWindow и NSView классы предоставляют частные реализации для всех методы.) Либо объект окна, либо его представитель может реализовать эти методы; однако делегатский реализация имеет приоритет, если есть реализации в обоих мест.

Сегодня у меня было окно с двумя NSTextFields на нем, и я хотел, чтобы у них было другое поведение перетаскивания, и я не хотел допускать перетаскивания где-либо еще в окне. То, как я интерпретирую документы, кажется, что мне нужно либо создать подкласс NSTextField, либо создать несколько гигантских спагетти-условных обработчиков перетаскивания в делегате окна, которые проверяют перетаскивание для каждого представления, чтобы выбрать другое поведение области перетаскивания для каждое поле.

Централизованный подход обработчика перетаскивания на основе делегата NSWindow кажется обременительным в любом случае, когда у вас было больше, чем небольшая горстка представлений назначения перетаскивания. Точно так же подход к подклассам кажется обременительным независимо от случая, потому что теперь код обработки перетаскивания находится в классе представления, поэтому, как только вы примете перетаскивание, вы Мне нужно придумать способ упорядочить отброшенные данные обратно в модель. bindings docs предупреждают вас о попытках управлять привязками, задавая значение UI программно. Так что теперь вы тоже застряли в этом.

Итак, мой вопрос: «Правда !? Это единственные доступные варианты? Или мне здесь не хватает чего-то простого?»

Спасибо.

5
задан ipmcc 8 January 2011 в 23:15
поделиться