1

2010 年有人提交了一个错误: http ://www.openradar.me/7582817

实际上,如果您将自动操作从 Finder 拖放到可编辑的AMWorkflowView,它不会添加该操作,而是添加一个新的“获取指定的查找器项目”操作。

我碰巧NSTableView列出了一些可以从表格视图拖到其他视图的操作。在它的右边是一个AMWorkflowView应该是拖动目的地的地方。一切都已实现并且工作正常,除了这里也添加了“获取指定的查找器项目”操作而不是拖动操作本身。

打印AMWorkflowView's -registeredDraggedtypes输出此列表:

[“ApertureImageDataPboardType”、“CalUUIDPasteboardType”、“AlbumDataListPboardType”、“CorePasteboardFlavorType 0x6974756E”、“ABGroupsUIDsPboardType”、“CorePasteboardFlavorType 0x4F69646E”、“NSFilenamesPboardType”、“AutomatorActions”、“com.apple.Automator.RunScript.source”、“Apple URL”粘贴板类型”、“com.apple.mail.PasteboardTypeAutomator”、“ApertureFolderDataPboardType”、“NSStringPboardType”、“CorePasteboardFlavorType 0x4870666C”、“AutomatorVariables”、“ImageDataListPboardType”、“操作错误”、“ABPeopleUIDsPboardType”]

似乎“AutomatorActions”板类型是相关的,但由于缺乏文档,我无法弄清楚如何使我的应用程序工作。有什么有用的信息吗?在Apple 的 Automator 文档中找不到任何有意义的东西......并且NSPasteBoard通过归档AMBundleAction来设置数据NSKeyedArchiver也不起作用。

4

1 回答 1

2

未记录,非法,使用风险自负:

- (BOOL)tableView:(NSTableView *)aTableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes
    toPasteboard:(NSPasteboard *)pboard
{
    [pboard clearContents];
    NSMutableArray *array = [NSMutableArray array];
    for (AMAction *action in [[self.arrayController arrangedObjects] objectsAtIndexes:rowIndexes])
    {
        NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
        [action writeToDictionary:dictionary];
        [array addObject:dictionary];
    }
    if ([pboard setPropertyList:@{@"Actions":array} forType:@"AutomatorActions"])
        return YES;
    return NO;
}
于 2016-05-07T01:17:37.150 回答