2014-05-13 28 views
1

我對Cocoa來說很新,而且我正在開發一個應用程序,可以從/拖入/拖入NSOutlineView如何在不指定行位置的情況下拖放到NSOutlineView中?

我已實施「outlineView:validateDrop:proposedItem:proposedChildIndex」和「outlineView:acceptDrop:item:childIndex:」方法使NSOutlineView成爲丟棄的目的地。它的工作原理都很好,除了它試圖指定一個行/位置,其中應刪除不同NSOutlineView中的項目。

我的應用程序並不需要指定該項目應該放置在哪一行上面;理想情況下,我希望在拖放到NSOutlineView時突出顯示整個NSOutlineView框。行選擇將以編程方式完成。

我該如何做到這一點?

回答

2

您將要使用NSOutlineViewsetDropItem:dropChildIndex:以編程方式設置要插入的索引。

爲突出整個外形來看,你可能會想嘗試NSTableViewsetDropRow:dropOperation:設定在-1 dropRow,該醫生說:

傳遞值-1爲行,NSTableViewDropOn作爲該操作會使整個表視圖高亮顯示而不是特定的行。如果接收者顯示的數據不允許用戶刪除特定行位置的項目,這很有用。

NSOutlineView繼承自NSTableView,所以如果NSOutlineView子類不會搞砸NSTableView的高亮行爲,這可能會起作用。

+0

它看起來像'NSOutlineView',使用: 'setDropItem:nil dropChildIndex:-1'完成這個技巧。 感謝您的指導! – kevinlee

+0

你可以做出答案。我不會冒犯。很高興你的工作 - 我認爲這是一個有價值的問題。 – stevesliva

相關問題