2011-10-29 76 views
1

我正在爲我的NSOutlineView設置拖放,並且我想防止父母被拋棄在他們的某個子女身上。家長和孩子都是集團實體。我明白我需要在outlineView:validatedrop方法中執行此操作。我想我需要用NSPredictate創建一個NSFetchRequest來獲取父項的所有子項,但是我不知道謂詞應該是什麼。NSOutlineView拖放:如何防止父母被丟棄在其子女之一

編輯:它應該是遞歸的,所以它也應該得到兒童的孩子,如果有的話。

有什麼建議嗎?

回答

0

解決:

挖掘到核心數據對象,而不是的,我只是看NSTreeNodes代替,下面蘋果sample code

綁定負責更新基礎核心數據模型。再一次,如果它看起來太複雜,可能不是正確的方法。

1
- (NSDragOperation)outlineView:(NSOutlineView *)ov validateDrop: 
(id <NSDraggingInfo>)info proposedItem:(id)item proposedChildIndex:(NSInteger)childIndex; 

在上述方法中,您可以管理拖動項目是否可以接受。請退回NSDragOperationNone,意味着防止掉落。