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

How to get selected objects from NSArrayController without a proxy object?

我正在尝试在由 NSArrayController 支持的 NSTableView 中实现多个对象的复制和粘贴。我的 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];
    }
}

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

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

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

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