gpt4 book ai didi

objective-c - IKImageBrowserView 中重新排序的数据源方法,未被调用

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

- (BOOL) imageBrowser:(IKImageBrowserView *) aBrowser moveItemsAtIndexes: (NSIndexSet *)indexes toIndex:(NSUInteger)destinationIndex;

未调用 IKImageBrowserView 中用于重新排序的数据源方法。 Nib 连接已正确。 setAllowsReorderdering 设置为 YES。

但它还没有工作。

- (void)imageBrowser:(IKImageBrowserView *)aBrowser removeItemsAtIndexes:(NSIndexSet *)indexes

同时,上述删除项目的方法被正确调用,并且运行完美。为什么不重新排序?

当我拖动项目进行重新排序时,将调用以下拖放代码。这里实际上有 2 个 IKImageBrowserView。

- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
{
NSPoint draggingLocation = [self convertPoint:[sender draggingLocation] fromView:nil];
NSRect contentRect = [[_indexContentBrowserView enclosingScrollView] frame];
BOOL isForContent = (contentRect.origin.x < draggingLocation.x) && (draggingLocation.x < contentRect.origin.x + contentRect.size.width);

if (isForContent)
{
if ([sender draggingSource] == _indexContentBrowserView)
{
return NSDragOperationMove;
}
else
{
NSPasteboard *pb = [sender draggingPasteboard];
NSString * type = [pb availableTypeFromArray:[NSArray arrayWithObject:NSFilenamesPboardType]];

if(type != nil)
{
return NSDragOperationEvery;
}
}
}
else
{
if ([sender draggingSource] == _indexListBrowserView)
{
return NSDragOperationMove;
}
else
{
NSPasteboard *pb = [sender draggingPasteboard];
NSString * type = [pb availableTypeFromArray:[NSArray arrayWithObject:NSFilenamesPboardType]];

if(type != nil)
{
return NSDragOperationEvery;
}
}
}

return NSDragOperationNone;



}

最佳答案

- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender
{
[super prepareForDragOperation:sender];

if(nil == [sender draggingSource])
return YES;

BOOL success = NO;

if (_galleryMultiImageFileBrowserView != [sender draggingSource])
{
//Code for checking the duplication of files
}
else
{
success = YES;
}
return success;
//I had returned NO here which was the reason for the problem.
}

我发现了问题。这是我的错误。上面的代码是更正后的代码。早些时候,当[sender DraggingSource]IKImageBrowserView时,它返回NO。这就是 moveItemsAtIndexes: 方法未被调用的原因。

@Dov:感谢 Dov 抽出宝贵的时间。多谢。@Joaquin:非常感谢。

关于objective-c - IKImageBrowserView 中重新排序的数据源方法,未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8200829/

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