Плагин OSX Quicksilver, руководство по Objective C
Я пытаюсь изменить плагин Quicksilver ( снимок экрана) в XCode, чтобы позволить целевому пути для 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 ответ
Я не могу поверить, что никто не смог помочь с ответом или указателем на этот вопрос (или, возможно, я просто недостаточно терпелив), но, к счастью, я смог найти ответ, читая некоторые другие ответы здесь на SO - к сожалению, я не могу сослаться на Вопрос здесь, так как я потерял страницу.
Во всяком случае, это будет делать это:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *screenCaptureLocationString = [[defaults persistentDomainForName:@"com.apple.screencapture"] valueForKey:@"location"];
Удивительно сложно найти эту информацию по какой-то причине, но, надеюсь, размещение ее здесь поможет кому-то еще.