tengo una subclase NSView que registra para arrastrar los archivos en el método init así:cacao NSView subvista arrastre bloqueo/drop
[self registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]];
La caída de arrastre funciona perfectamente bien, pero si añado una subvista a este punto de vista con el mismo cuadro exacto, ya no funciona. Mi suposición es que la subvista es bloquear el evento de arrastre para ir a la súper vista. ¿Puedo evitar eso? Gracias
Además, sé que estoy haciendo dos preguntas, pero no quiero crear un tema nuevo solo para esto: cuando estoy arrastrando, mi cursor no cambia al signo "+" como con otras Drags, ¿cómo puedo hacer eso? Gracias de nuevo.
ACTUALIZACIÓN: Aquí está la forma en que lo tengo instalado en mi IB:
El DrawView es la clase personalizada que estaba hablando de la registrada en draggedtypes. Y la vista de imagen, simplemente es una vista secundaria, me arrastré una imagen de la sección de medios de comunicación ... Si ayuda, aquí está mi código relevante para DragView:
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
return NSDragOperationCopy;
}
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender {
NSPasteboard *pboard;
pboard = [sender draggingPasteboard];
NSArray *list = [pboard propertyListForType:NSFilenamesPboardType];
if ([list count] == 1) {
BOOL isDirectory = NO;
NSString *fileName = [list objectAtIndex:0];
[[NSFileManager defaultManager] fileExistsAtPath:fileName
isDirectory: &isDirectory];
if (isDirectory) {
NSLog(@"AHH YEA");
} else {
NSLog(@"NOO");
}
}
return YES;
}
Cómo estás creando la subvista? Puedo arrastrarme a una vista con una subvista creada a través de IB o programáticamente. –
Tengo la vista configurada en IB. Configuré su clase a la clase personalizada que describí arriba. Luego, en IB, arrastro una imagen y la coloco dentro de esa vista (la hago una subvista). Cuando hago eso, el arrastre deja de funcionar. Gracias. – user635064
Se actualizó la pregunta original que proporciona más detalles. Gracias. – user635064