OSX Quicksilver 插件,Objective C 指南



我正在尝试修改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;
}

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

谢谢!

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

无论如何,这将做到这一点:

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

由于某种原因,很难找到此信息,但希望在此处发布它会帮助其他人。

最新更新