Pregunta

Por defecto (al parecer), IKImageBrowserView permite arrastrar y soltar para ubicaciones en el Finder. Me gustaría desactivar este comportamiento, pero estoy seguro de cómo hacerlo. Estaba pensando que tal vez la implementación del protocolo NSDraggingDestination básicas y fundamentales que podría solucionar este problema, pero hasta ahora no ha funcionado para mí.

Gracias por cualquier ayuda!

¿Fue útil?

Solución

Si desea personalizar el comportamiento de arrastrar y soltar de IKImageBrowserView, se puede aplicar el método - (NSUInteger) imageBrowser:(IKImageBrowserView *) aBrowser writeItemsAtIndexes:(NSIndexSet *) itemIndexes toPasteboard:(NSPasteboard *)pasteboard en objeto de origen de datos de su navegador. Eso le permitirá definir qué tipos y los datos que quieren poner en la mesa de trabajo cuando se hace un lastre. Si desea desactivar arrastrando en su totalidad, debe ser capaz de simplemente devolver 0 (el número de elementos que desea ser arrastrado).

Otros consejos

Si usted está apuntando león puede subclase IKImageBrowserView y anular la draggingSession:sourceOperationMaskForDraggingContext: método protocolo NSDraggingSource . Para evitar que arrastra fuera de su aplicación simplemente volver NSDragOperationNone si el contexto es NSDraggingContextOutsideApplication. De lo contrario, devolver las operaciones de arrastre que le interesa. De esta manera usted puede no permitir arrastra al escritorio, el Finder, etc., pero aún permitir que arrastra dentro de la vista del navegador de imágenes de la aplicación.

- (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;
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top