OSX Quicksilver插件,Objective C指南

时间:2012-11-12 15:22:33

标签: objective-c xcode quicksilver

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

我是Xcode / Objective C的字面菜鸟,所以任何信息/示例或指向正确的方向都会非常感激。

需要调整的screencapture插件文件是“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;
}

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

无论如何,这样做会:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

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

出于某种原因很难找到这些信息,但希望在此处发布此信息可以帮助其他人。