2016-05-06 79 views
1

2010年,有人提起了錯誤: http://www.openradar.me/7582817拖動和下降Automator動作到AMWorkflowView

事實上,如果您拖動和拖放從Finder中的Automator的行動,可編輯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」 pboard類型是相關的,但由於缺乏文件我一直無法弄清楚如何讓我的應用程序工作。有沒有關於這方面的有用信息?在Apple's Automator documentation中找不到任何有意義的內容...並且通過將AMBundleActionNSKeyedArchiver歸檔來設置NSPasteBoard的數據也無效。

+0

的Automator也加入 「獲得指定的Finder項」。 – Willeke

回答

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; 
} 
+0

工程很好,非常感謝。 –