Pergunta

Por padrão (ao que parece), o iKIMAGEBROWSERVIEW permite arrastar e soltar para locais no Finder. Eu gostaria de desligar esse comportamento, mas não tenho certeza de como fazê -lo. Eu estava pensando que talvez implementar o protocolo NSDraggingDestination e substituí -lo poderia resolver isso, mas até agora não funcionou para mim.

Obrigado por qualquer ajuda!

Foi útil?

Solução

Se você deseja personalizar o comportamento de arrastar e soltar do ikimageBrowSerview, você pode implementar o - (NSUInteger) imageBrowser:(IKImageBrowserView *) aBrowser writeItemsAtIndexes:(NSIndexSet *) itemIndexes toPasteboard:(NSPasteboard *)pasteboard Método no objeto de fonte de dados do seu navegador. Isso permitirá que você defina quais tipos e dados você deseja colocar no Pasteboard ao fazer um arrasto. Se você deseja desativar completamente o arrasto, poderá retornar 0 (o número de itens que deseja ser arrastado).

Outras dicas

Se você está segmentando leão, você pode subclasse IKImageBrowserView e substituir o draggingSession:sourceOperationMaskForDraggingContext: Protocolo NSDraggingsource método. Para evitar arrastos para fora do seu aplicativo, basta retornar NSDragOperationNone Se o contexto for NSDraggingContextOutsideApplication. Caso contrário, retorne as operações de arrasto em que você está interessado. Dessa forma, você pode não permitir arrastar para o desktop, localizador etc., mas ainda assim permitir arrastar na visualização do navegador de imagem do seu aplicativo.

- (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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top