是否可以在拖放操作中将指针传递给对象?在拖放操作中传递对象指针
这里的情景......
我有自定义对象的“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