【发布时间】:2013-01-24 14:04:04
【问题描述】:
过去三天我一直在尝试创建一个包含 4 个图标的单行,您可以通过拖动来重新排列它们。我尝试了很多不同的方法,到目前为止 NSCollectionView 是最好的方法。我现在可以通过编程方式创建 NSCollectionView 并使用 NSArray 向其中添加项目。但是,我仍然无法重新排列图标/NSCollectionViewItems。我现在很困惑,希望你们中的一个人能指出我正确的方向。
我在 stackoverflow(以及整个互联网)上阅读了很多类似的问题。很明显我需要从 NSCollectionViewDelegate 添加方法:
- (BOOL)collectionView:(NSCollectionView *)collectionView writeItemsAtIndexes:(NSIndexSet *)indexes toPasteboard:(NSPasteboard *)pasteboard
-(BOOL)collectionView:(NSCollectionView *)collectionView canDragItemsAtIndexes:(NSIndexSet *)indexes withEvent:(NSEvent*)event
-(BOOL)collectionView:(NSCollectionView *)collectionView acceptDrop:(id < NSDraggingInfo >)draggingInfo index:(NSInteger)index dropOperation:(NSCollectionViewDropOperation)dropOperation
-(NSDragOperation)collectionView:(NSCollectionView *)collectionView validateDrop:(id < NSDraggingInfo >)draggingInfo proposedIndex:(NSInteger *)proposedDropIndex dropOperation:(NSCollectionViewDropOperation *)proposedDropOperation
-(NSArray *)collectionView:(NSCollectionView *)collectionView namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropURL forDraggedItemsAtIndexes:(NSIndexSet *)indexes
我已将这些(带有返回值)添加到我的 NSCollectionView 子类中,但我仍然一无所获。所以我现在的问题是:我应该创建一个 NSCollectionViewDelegate 的子类并在那里覆盖这些方法吗?
但这真的是朝着正确的方向发展吗? (您可能已经注意到,我是 Cocoa 初学者,所以我现在很迷茫,因为我发现 NSCollectionView 类非常混乱。)
提前致谢, 弗兰斯
【问题讨论】: