Frage

In der Standardeinstellung (wie es scheint), ermöglicht IKImageBrowserView per Drag & Drop auf Standorte im Finder. Ich möchte dieses Verhalten deaktivieren, aber ich bin nicht sicher, wie dies zu tun. Ich dachte, dass vielleicht das NSDraggingDestination Protokoll implementiert und überschreibt sie dieses Problem lösen könnte, aber bisher hat es nicht für mich gearbeitet.

Vielen Dank für jede Hilfe!

War es hilfreich?

Lösung

Wenn Sie IKImageBrowserView Drag-and-Drop Verhalten anzupassen, können Sie die - (NSUInteger) imageBrowser:(IKImageBrowserView *) aBrowser writeItemsAtIndexes:(NSIndexSet *) itemIndexes toPasteboard:(NSPasteboard *)pasteboard Methode in Ihrem Browser Datenquellenobjekt implementieren. Das lässt Sie definieren, welche Arten und Daten, die Sie auf der Montagefläche setzen wollen, wenn eine Drag tun. Wenn Sie möchten, zu deaktivieren vollständig ziehen, sollten Sie in der Lage sein, nur 0 zurück (die Anzahl der Artikel, die Sie gezogen werden sollen).

Andere Tipps

Wenn Sie Lion sind Targeting können Sie IKImageBrowserView Unterklasse und die draggingSession:sourceOperationMaskForDraggingContext: außer Kraft setzen Methode NSDraggingSource Protokoll. Um schleppt außerhalb Ihrer Anwendung zu verhindern nur zurückgeben NSDragOperationNone wenn der Kontext NSDraggingContextOutsideApplication ist. Ansonsten geben die Ziehoperationen, die Sie interessiert sind. Auf diese Weise können schleppt auf dem Desktop nicht zulassen kann, Finder, etc., aber immer noch erlauben, schleppt in Ihrem Bild-Browser-Ansicht der Anwendung.

- (NSDragOperation)draggingSession:(NSDraggingSession *)session sourceOperationMaskForDraggingContext:(NSDraggingContext)context {
    [super draggingSession:session sourceOperationMaskForDraggingContext:context];

    switch (context) {
        case NSDraggingContextOutsideApplication:
            return NSDragOperationNone;
            break;

        case NSDraggingContextWithinApplication:
            return NSDragOperationAll;
            break;

        default:
            return NSDragOperationAll;
            break;
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top