Перетаскивание из NSBrowser и использование привязок?
Я реализовал браузер, который совместно использует NSTreeController с NSOutlineView, чтобы я мог легко переключаться между ними и поддерживать синхронизацию состояний. Реализация поддержки перетаскивания для NSOutlineView проста, но кажется, что NSBrowser не может поддерживать перетаскивание при использовании привязок. Кто-нибудь был в состоянии поддерживать перетаскивание из NSBrowser при использовании привязок?
1 ответ
Я решил это путем создания пользовательских подклассов NSBrowser
, NSMatrix
, а также NSBrowserCell
, Я должен был заставить NSBrowser
использовать NSRadioModeMatrix
режим (одна ячейка), установив этот режим в NSBrowser
подкласс -mouseDown
метод, потому что он постоянно сбрасывался.
в NSBrowserCell
подкласс, я реализовал trackMouse:inRect:ofView:untilMouseUp:
просто имея суперкласс сделать это, но вернулся NO
поэтому будет происходить отслеживание, которое позволило mouseDragged:
быть призванным в моем NSMatrix
подкласс. В mouseDragged:
Затем я сделал все, чтобы получить местоположение мыши, построить изображение мыши и использовал [self dragImage:at:offset:pasteboard:source:slideBack:]
,
Я не уверен, что это лучший подход, но это сработало. Работает только тогда, когда в NSBrowser
,