2010-01-11 12 views
5

Potrzebuję otworzyć sieć-prefpane w mojej aplikacji. To działa prawidłowo zProgramowo otwarty PrefPane z sekcją

[[NSWorkspace sharedWorkspace] openFile:@"/Path/To/PrefPane"]; 

ale jak mogę bezpośrednio otworzyć „proxy ustawienia”, który znajduje się w „sieci-Pref” pod „Zaawansowane”?

Można to zobaczyć w Safari Ustawienia w sekcji „Zaawansowane-> Proxy”

Dzięki

Odpowiedz

6

Najprostszym i najczystszym sposobem, jaki znalazłem, jest użycie Applescript.

NSAppleScript *a = [[NSAppleScript alloc] initWithSource:@"tell application \"System Preferences\"\nactivate\nset current pane to pane \"com.apple.preference.universalaccess\"\nend tell"]; 
[a executeAndReturnError:nil]; 
[a release]; 

Zamień com.apple.preference.universalaccess na nazwę panelu. Here is a full list of preference pane names.

+0

To może być użyteczne dla mnie. Dzięki! – Nobik

2

Choć jest to wykonalne z UI skryptów, wymaga on również dostęp do urządzeń wspomagających (System Preferencje-> Uniwersalny dostęp). To nie jest w porządku, ponieważ jeśli użytkownik woli, aby dostęp był wyłączony, to po prostu nie zadziała. Jeśli potrzebujesz zmodyfikować ustawienia proxy, możesz bezpośrednio użyć SystemConfiguration.framework, przechodząc niezbędne uwierzytelnianie.

+0

Nie chcę tego modyfikować. Po prostu otwórz, że użytkownik może sam go zmodyfikować. Dzięki za informacje z opcją "uniwersalny dostęp" – Nobik