我正在尝试使用cocoa创建一个automator服务,它将在同一路径上创建一个文本文件,其中包含所选文件的名称,我在下面编写代码:
- (id)runWithInput:(id)input fromAction:(AMAction *)anAction error:(NSDictionary **)errorInfo
{
// Add your code here, returning the data to be passed to the next action.
NSArray *fileURLs = (NSArray *)input;
size_t count = [fileURLs count];
dispatch_apply(count, dispatch_get_global_queue(0, 0), ^(size_t i) {
NSURL *fileURL = [fileURLs objectAtIndex:i];
NSData *data = [@"some crude text ;)" dataUsingEncoding:NSUTF8StringEncoding];
//changing extension of file
NSString *filePathWithoutExtension = [[fileURL path] stringByDeletingPathExtension];
NSString *filePathWithNewExtension = [[NSString alloc] initWithFormat:@"%@.%@",filePathWithoutExtension,@"txt"];
[data writeToFile:filePathWithNewExtension atomically:NO];
});
// no need to return anything
return nil;
}
我在info.plist文件中添加了以下值:
我将动作导入自动设定器,并将其添加到默认服务模板。
输入模板中选择的选项为:
我的问题是当我尝试右键单击finder中的文件时,创建的服务没有出现。
任何人都可以建议我错过了什么吗?
答案 0 :(得分:1)
有时候我的服务没有出现,因为我有很多这样的问题。尝试进入以下窗口并通过取消选中其复选框来禁用其他一些服务:
系统偏好设置>键盘>服务
如果您有任何要删除(或存档)的服务,则可以执行以下操作:
您可以删除服务或将其移动到某处以便安全保存。
--- ---编辑
我一直在看这个。也许,在Automator中将服务工作流的输入指定为“文件和文件夹>图像文件”,而不是“文本> URL”。或者,可能会有效。
您必须在操作中调整Objective-C代码以使用路径名而不是使用URL,但这是一个想法。
如果我的评论都不起作用,您可以发送电子邮件至:kaydell@yahoo.com我有兴趣了解有关Automator的更多信息。
答案 1 :(得分:0)
我更改了这些选项后服务工作了:
到这些:
: - )