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

标签 cocoa nsarraycontroller nspasteboard nsproxy

我正在尝试在由 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];
    }
}

当我尝试执行复制时,访问 Controller 的选择时出现错误,因为它返回代理对象:

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

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

最佳答案

这个问题的答案非常明显:使用 self.arrayController.selectedObjects 代替。

关于cocoa - 如何在没有代理对象的情况下从 NSArrayController 获取选定的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32396975/

相关文章:

macos - 编写 OS X 辅助功能客户端的文档在哪里?

macos - 将 NSMutableArray 绑定(bind)到单个列 NSTableView 的简单方法是什么

cocoa - 使用 NSArrayController 划分 NSTableView

cocoa - 通过绑定(bind)分别在两个文本字段中显示 TableView 中两行的日期

macos - 在 NSPasteboard 中用第二个最新项目替换最新项目

objective-c - NS服务 : "How to create new file in Finder" with Sandbox App

swift 4+ : Issues copying a String to Clipboard using NSPasteboard

objective-c - 它如何知道要调用哪个方法?

objective-c - Cocoa - View 处理的解释

cocoa - Mac/Cocoa 中的套接字编程