Самый быстрый способ программно открыть prefpane?

Для меня VisualSVN симпатичен, но бесполезен. AnkhSvn, с другой стороны, после того, как это прибыло в v2 как scc поставщик, это работает очень хорошее. VisualSVN пытается думать для Вас, который не является хорошей вещью, пользователь должен быть контроллером, не программным обеспечением.

7
задан K_T 18 November 2009 в 00:31
поделиться

3 ответа

Используйте Launch Services или NSWorkspace, чтобы открыть пакет prefpane. Это программная версия команды open (1).

5
ответ дан 6 December 2019 в 08:15
поделиться

Как именно вы использовали мост сценариев?

Я пробовал использовать этот код и считаю, что он работает достаточно хорошо:

SystemPreferencesApplication *SystemPreferences = [SBApplication applicationWithBundleIdentifier:@"com.apple.systempreferences"];
@try {
    [SystemPreferences activate];
    SystemPreferences.currentPane = [SystemPreferences.panes objectWithID:@"com.apple.preference.security"];
} @catch (NSException *exception) {
    NSLog(@"%@", [exception description]);
}

Вот еще один вариант, просто для удовольствия, это Какао, но вообще не документирован (и работает только с панелями системных настроек). Вы можете использовать его для сравнения производительности, но не используйте его в производственном коде.

id bezelServicesTask = [NSConnection rootProxyForConnectionWithRegisteredName:@"com.apple.BezelServices" host:nil];
[bezelServicesTask performSelector:@selector(launchSystemPreferences:) withObject:@"Security.prefPane"];
0
ответ дан 6 December 2019 в 08:15
поделиться

Понятно:

system("open -a System\\ Preferences");

И выбрать, какую панель открывать:

open /System/Library/PreferencePanes/Internet.prefPane
open /System/Library/PreferencePanes/DateAndTime.prefPane
...

При условии, что вы с помощью небольших проб и ошибок нашли нужный файл в / System / Library / Сначала PreferencePanes / .

Я уверен, что есть еще cocoa способ сделать этот последний трюк, но ... этот работает со всеми языками.

Также: вы можете проверить эти пути

 / Library / PreferencePanes /
~ / Библиотека / PreferencePanes /

...as that's where third party apps install their *.prefPane files

5
ответ дан 6 December 2019 в 08:15
поделиться