Перетаскивание не работает с подклассом NSBox - PullRequest
2 голосов
/ 17 сентября 2009

Я создал подкласс NSBox для реализации перетаскивания. У меня есть следующий код:

@interface DropView : NSBox {

}
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender;
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender;
@end

@implementation DropView
- (void)awakeFromNib
{
    [self registerForDraggedTypes:
  [NSArray arrayWithObject: NSFilenamesPboardType]];
}
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
{
 NSDragOperation sourceDragMask = [sender 
           draggingSourceOperationMask];
 if (sourceDragMask & NSDragOperationLink) {
  return NSDragOperationLink;
 } else if (sourceDragMask & NSDragOperationCopy) {
  return NSDragOperationCopy;
 }
 return NSDragOperationNone;
}

-(BOOL)performDragOperation:(id <NSDraggingInfo>)sender
{
 NSPasteboard *pboard=[sender draggingPasteboard];
 NSArray *files = [pboard propertyListForType:NSFilenamesPboardType];
 NSEnumerator *e=[files objectEnumerator];
 NSString *str=nil;
 while(str=[e nextObject]) {
  NSLog(@"Got %@\n", str);
 }

 return (TRUE);
}
@end

Однако перетаскивание не работает. Я не вижу маленького зеленого плюса, когда пытаюсь что-то перетащить в коробку.

Спасибо

1 Ответ

3 голосов
/ 17 сентября 2009

Исправлена ​​проблема.Вместо того, чтобы устанавливать класс NSView в DropView, установка класса NSBox в DropView отлично работала: -)

...