我有NSImageView
拖放连接如下:
-(NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender{
if ((NSDragOperationGeneric & [sender draggingSourceOperationMask])
== NSDragOperationGeneric) {
return NSDragOperationGeneric;
} // end if
// not a drag we can use
return NSDragOperationNone;
}
-(NSDragOperation) draggingUpdated:(id<NSDraggingInfo>)sender{
return NSDragOperationCopy;
}
-(void) draggingEnded:(id<NSDraggingInfo>)sender{
NSPasteboard *pboard = [sender draggingPasteboard];
if ( [[pboard types] containsObject:NSFilenamesPboardType] )
{
NSArray *files = [pboard
propertyListForType:NSFilenamesPboardType];
// Loop through all the files and process them.
for( int i = 0; i < [files count]; i++ )
{
....
}
}
这一切都很棒。从Finder拖动fils时,如果在视图内部,则表示加号,并在外部时删除加号。它还表示要在一个小气泡中复制多少个文件。一切都很好。但是,如果我拖动视图并在应用程序外部加上消失,但在发布时它仍会将文件放入视图中。我怎么能阻止这种行为?
非常感谢任何想法。
答案 0 :(得分:0)
我想我找到了解决方案。
我没有使用draggingEnded
,而是使用performDragOperation
,而且一切正常。