2013-08-27 20 views
0

我想創建一個使用可可的automator服務,它將簡單地創建一個文本文件與選定文件的名稱,在相同的路徑,我寫下面的代碼: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文件中值:

  • AMAccepts:類型:項目0:com.apple.cocoa.url
  • AMCategory:AMCategoryPhotos

我將動作導入到automator中,並將其添加到默認服務模板中。

輸入模板選擇的選項有:

  1. 服務接收選擇:網址
  2. 在:搜索
  3. 輸入是:只有網址

我的問題是創建的服務當我嘗試在查找程序中右鍵單擊文件時沒有出現。

任何人都可以建議,如果我錯過了什麼?

+0

因此,服務不會出現在上下文菜單在Finder中,當你在一個文件上右鍵單擊。您的服務是否出現在Finder應用程序菜單的服務菜單中? – Kaydell

回答

1

有時我有我的服務沒有出現的問題,因爲我有這麼多人。嘗試取消選中相應的複選框進入下面的窗口和禁用其他一些服務:

系統偏好設置>鍵盤>服務

如果您有要刪除(或存檔)的任何服務,你可以做以下內容:

  1. 的服務的名稱用鼠標右鍵單擊
  2. 選擇「在Finder中顯示」
  3. 這將帶你到〜/圖書館/服務/

您可以刪除服務或將它們移動到某個地方以保持安全。

---編輯---

我一直在看這個更多。也許,工作的方式是在Automator中將Service的工作流程輸入指定爲「文件和文件夾>圖像文件」,而不是「文本> URL」。

您必須在您的操作中調整您的Objective-C代碼才能使用路徑名稱而不是使用URL,但這是一個想法。

如果我的評論無法正常工作,請發送電子郵件至:[email protected]我有興趣瞭解有關Automator的更多信息。

+0

thnx爲您提出的解決方案: - )...我會盡力讓你知道。 – Devarshi

0

服務工作後,我改變了這些選項:

  1. 服務接收選擇:網址
  2. 在:搜索
  3. 輸入是:只有網址

這些:

  1. 服務接收選擇:圖像文件
  2. 在:搜索
  3. 輸入是:(禁用)

:-)

相關問題