gpt4 book ai didi

objective-c - 拖放不适用于 NSBox 的子类

转载 作者:行者123 更新时间:2023-12-03 16:34:25 37 4
gpt4 key购买 nike

我创建了 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

但是,拖放不起作用。当我尝试将某些东西拖入框中时,我看不到绿色的小加号。

谢谢

最佳答案

解决了问题。不用将 NSView 的类设置为 DropView,而是将 NSBox 的类设置为 DropView 效果很好:-)

关于objective-c - 拖放不适用于 NSBox 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1436175/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com