2012-11-12 22 views
1

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

我是Xcode/Objective C的字面noob,所以任何信息/示例或点在正确的方向将非常感激。

这需要进行调整的抓屏插件文件是“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

我不能相信没有人能够用这个答案或指针来帮忙(或者我只是没有耐心),但是幸运的是,我能够通过其他人阅读时找到答案在这里的答案 - 遗憾的是我不能在这里引用这个问题,因为我失去了页面。

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

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

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

令人惊讶的是很难找到某种原因这个信息,但希望在这里张贴这将帮助别人。