【问题标题】:NSOutlineView drag and drop: how to prevent parent being dropped on one of its childrenNSOutlineView 拖放:如何防止父级被拖放到它的一个子级上
【发布时间】:2011-10-29 19:21:01
【问题描述】:

我正在为我的 NSOutlineView 设置拖放功能,并且我想防止父母被丢到他们的孩子身上。父级和子级都是 Group 实体。我知道我需要在 outlineView:validatedrop 方法中执行此操作。我想我需要用 NSPredictate 创建一个 NSFetchRequest 来获取父级的所有子级,但我不知道谓词应该是什么。

编辑:它应该是递归的,所以它也应该得到孩子的孩子,如果有的话。

有什么建议吗?

【问题讨论】:

    标签: cocoa core-data drag-and-drop nsoutlineview


    【解决方案1】:
    - (NSDragOperation)outlineView:(NSOutlineView *)ov validateDrop:
    (id <NSDraggingInfo>)info proposedItem:(id)item proposedChildIndex:(NSInteger)childIndex;
    

    在上面这个方法中,你可以管理拖动项可以接受或不能接受。请回NSDragOperationNone,表示防止掉线。

    【讨论】:

      【解决方案2】:

      已解决:

      我没有深入研究核心数据对象,而是按照 Apple 的 sample code 来查看 NSTreeNodes。

      绑定负责更新底层核心数据模型。再说一次,如果它看起来太复杂,那可能不是正确的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多