如何在没有代理对象的情况下从NSArrayController获取所选对象?

时间:2015-09-04 11:28:14

标签: cocoa nsarraycontroller nspasteboard nsproxy

我正在尝试在由NSTableView支持的NSArrayController中实现复制和粘贴多个对象。我的copy:方法如下所示:

- (IBAction)copy:(id)sender {
    if (self.arrayController.selectionIndexes.count > 0) {
        NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
        [pasteboard clearContents];
        NSArray *copiedObjects = self.arrayController.selection;
        [pasteboard writeObjects:copiedObjects];
    }
}

当我尝试执行复制时,访问控制器的选择时出错,因为它返回了一个代理对象:

-[_NSControllerObjectProxy countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x7f88b362d580

如何获取实际选定的对象?

1 个答案:

答案 0 :(得分:1)

答案非常明显:改为使用self.arrayController.selectedObjects