是否可以在拖放操作中將指針傳遞給對象?在拖放操作中傳遞對象指針
這裏的情景......
我有自定義對象的「NSArray的」。爲了參數,我們會說這是一個人物對象列表。
該列表通過NSArrayController
綁定到NSTableView
。 NSTableView
是一個拖動源,我有一個NSView
作爲拖動目標。
實施拖放操作時,我可以在拖動過程中輕鬆地從NSArrayController
獲取當前選定人員的姓名,並將其傳遞給NSView
中的接收人,作爲NSString
。
但是,我希望能夠將指針傳遞給person對象,以便接收者可以訪問整個對象。
問題似乎是,拖動操作創建人物對象的新實例,儘管在人物模型中實現了所需方法,但並未引用所選人物對象。因此,我在目的地得到一個人物對象,它只是不填充來自對象的數據。
理想情況下,我想要對象指針,因爲NSView將使用對象引用,以便對象本身的任何更新都反映在NSView
和NSTableView
(以及使用該對象的任何其他位置)中。
它甚至可以在拖放操作中使用對象引用,還是需要傳遞一些自定義引用,它是人物對象的iVar,然後在到達目的地後執行查找? (這對我考慮Obj-c有多少對象引用似乎有點過時)。
我知道一個目標可以接受來自應用程序外部的拖動操作,但是將操作指定爲本地操作會解釋這種情況嗎?
我檢查了蘋果文檔,但仍似乎無法找到答案。
Drag and Drop Programming Topics
任何和所有幫助非常感謝。
謝謝彼得!看起來我正盯着正確的道路 - 只是沒有走得太遠而已。很高興知道不使用對象本身的地址 - 我只是在研究這是否是一種可行的選擇。時機就是一切! :-) – Hooligancat 2010-09-23 05:04:26
彼得,只是爲了讓你知道,工作完美。 :-) 謝謝!!我結束了在我擁有的全局方法類中創建標識符前綴。然後每個模型都有一個'pasteboardRef'方法,它返回它自己的類名和對象的唯一ID。然後,它通過粘貼板發送並拾取到目的地並解析出來,以返回類和ID。發揮魅力! – Hooligancat 2010-09-24 21:24:36