1

我正在尝试在 Xcode 中修改Quicksilver 插件(屏幕捕获),以允许将屏幕捕获目标路径设置为默认的 com.apple.screencapture 路径值。由于某种原因,该插件当前对路径进行了硬编码,因此即使您更改了屏幕截图的 OSX 默认路径,该插件仍会将它们发送到 OSX 默认值,即桌面。

我是 Xcode/Objective C 的真正菜鸟,因此任何信息/示例或指向正确方向的内容都将不胜感激。

需要调整的截屏插件文件是“QSScreenCapturePlugIn.m”文件 - 这是一个片段:

(QSObject *)captureRegion:(QSObject *)dObject{

   NSString *destinationPath=[@"~/Desktop/Picture.png" stringByStandardizingPath];

   destinationPath=[destinationPath firstUnusedFilePath];

   NSTask *task=[NSTask launchedTaskWithLaunchPath:SCTOOL arguments:[NSArray arrayWithObjects:@"-is",destinationPath,nil]];

   [task waitUntilExit];

   [[QSReg preferredCommandInterface] selectObject:[QSObject fileObjectWithPath:destinationPath]];

   [[QSReg preferredCommandInterface] actionActivate:nil];
   return nil;
}

我已经搜索了高和低的示例来演示如何从默认数据库中读取,但似乎信息很少。

谢谢!

4

1 回答 1

1

我不敢相信没有人能够在这个问题上提供答案或指针(或者我可能只是没有足够的耐心),但幸运的是我能够在阅读 SO 上的其他答案时找到答案- 不幸的是,我无法在此处引用问题,因为我丢失了页面。

无论如何,这会做到:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *screenCaptureLocationString = [[defaults persistentDomainForName:@"com.apple.screencapture"] valueForKey:@"location"];

出于某种原因,很难找到此信息,但希望将其发布在这里对其他人有所帮助。

于 2012-11-15T14:44:26.657 回答