- (BOOL) imageBrowser:(IKImageBrowserView *) aBrowser moveItemsAtIndexes: (NSIndexSet *)indexes toIndex:(NSUInteger)destinationIndex;
で並べ替えるためのこのデータソースメソッドはIKImageBrowserView
呼び出されていません。ペン先の接続が正しく行われています。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;
}