我有一个的NSView子类,其登记为拖动文件init方法是这样的:可可的NSView子视图阻断拖/放
[self registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]];
的拖放工作完全正常,但如果我添加一个子视图这种观点与完全相同的框架,它不再工作。我的猜测是,子视图阻止拖动事件进入超级视图。我能避免吗?谢谢
此外,我知道我问了两个问题,但我不想为此创建一个新主题:当我拖动时,光标不会像其他人一样更改为“+”号拖,我该怎么做? 再次感谢。
UPDATE: 这里是我怎么也得在我的IB成立:
的drawView函数是我说的是,对于draggedtypes注册自定义类。并且图像视图仅仅是一个子视图,我拖着图像从媒体节... 如果有帮助,这是我的相关代码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;
}
你是如何创建子视图?我可以通过IB或以编程方式将子视图拖入视图。 – 2011-05-05 04:42:26
我有建立在IB的观点。我将它设置为上面描述的自定义类的类。然后在IB中,我拖动图像并将其放入该视图(使其成为子视图)。当我这样做时,拖动停止工作。谢谢。 – user635064 2011-05-05 04:54:28
更新了提供更多详细信息的原始问题。谢谢。 – user635064 2011-05-05 05:05:35