1

我正在将 IKImageBrowserView 用于我目前正在开发的 mac 应用程序,并希望在 IKImageBrowserView 内启用拖动,所以我使用了– setAllowsDroppingOnItems:但不幸的是,这不允许我指定哪些项目有资格作为放置目标所以问题的第一部分是是否有一种简单直接的方法来做到这一点。

我搜索了文档并想出了一种方法,该方法包括使用拖动委托方法- (NSDragOperation)draggingUpdated:(id < NSDraggingInfo >)sender

NSUInteger index = [browserView indexOfItemAtPoint:sender.draggingLocation];
    if(index != NSNotFound)
    {
        WCItemObject *browserCell = (WCItemObject *)[self.items objectAtIndex:index];

        NSLog(@"%@", browserCell.path);
    }

从逻辑上讲,这应该有效,但事实并非如此。如果项目很少(不显示垂直滚动条),它只会给出正确的对象,这让我相信 indexOfItemAtPoint 不考虑滚动视图,所以如果是这样我可能需要覆盖它(这是第二部分问题)我该怎么做。

4

1 回答 1

0

我通过使用 indexAtLocationOfDroppedItem (IKImageBrowserView 的一种方法)让它工作,从名称和文档中听起来好像只是在放置后更新但它实际上在悬停时更新。

于 2011-07-19T14:23:38.570 回答