2011-07-11 8 views

उत्तर

18

को सिस्टम प्राथमिकताएं> भाषण> पाठ जाना उन्हें समय बचाने के लिए कोशिश कर रहा हूँ के बाद एक काफी आसान (और विश्वसनीय) जिस तरह से कम से कम सिस्टम प्राथमिकताएं Speech.prefPane के लिए खुला पाने के लिए किया जाता है:

- (IBAction)openSpeechPrefs:(id)sender { 
    [[NSWorkspace sharedWorkspace] openURL: 
    [NSURL fileURLWithPath:@"/System/Library/PreferencePanes/Speech.prefPane"]]; 
} 

हालांकि, यह आवश्यक रूप से Text to Speech टैब पर स्विच नहीं किया जाएगा, बल्कि उपयोगकर्ता द्वारा चयनित अंतिम टैब को स्विच किया जाएगा।

वास्तव में टेक्स्ट टू स्पीच टैब पर भी स्विच करना संभव है, लेकिन यह थोड़ा और अधिक शामिल है। आप सिस्टम प्राथमिकता अनुप्रयोग में कमांड भेजने के लिए AppleScript का उपयोग कर सकते हैं, लेकिन ScriptingBridge.framework का उपयोग कर (Scripting Bridge Programming Guide देखें) बहुत तेज है।

आप अपने प्रोजेक्ट को ScriptingBridge.framework जोड़ने के लिए, और फिर टर्मिनल में निम्नलिखित की तरह एक आदेश का उपयोग एक SBSystemPreferences.h हेडर फाइल उत्पन्न करने के लिए साथ काम करने की आवश्यकता होगी:

sdef "/Applications/System Preferences.app" | sdp -fh --basename SBSystemPreferences -o ~/Desktop/SBSystemPreferences.h

है कि SBSystemPreferences.h शीर्ष लेख जोड़ें

- (IBAction)openSpeechPrefs:(id)sender { 
    SBSystemPreferencesApplication *systemPrefs = 
    [SBApplication applicationWithBundleIdentifier:@"com.apple.systempreferences"]; 

    [systemPrefs activate]; 

    SBElementArray *panes = [systemPrefs panes]; 
    SBSystemPreferencesPane *speechPane = nil; 

    for (SBSystemPreferencesPane *pane in panes) { 
     if ([[pane id] isEqualToString:@"com.apple.preference.speech"]) { 
      speechPane = pane; 
      break; 
     } 
    } 
    [systemPrefs setCurrentPane:speechPane]; 

    SBElementArray *anchors = [speechPane anchors]; 

    for (SBSystemPreferencesAnchor *anchor in anchors) { 
     if ([anchor.name isEqualToString:@"TTS"]) { 
      [anchor reveal]; 
     } 
    } 
} 

संपादित करें:

अपनी परियोजना है, तो के लिए निम्न -openSpeechPrefs: बदल

नमूना ScriptingBridge.framework विधि का उपयोग कर परियोजना: http://github.com/NSGod/OpenSystemPrefsTTS

+0

यह वास्तव में अच्छा है, धन्यवाद। – Raffael

+1

मैंने टर्मिनल में 'sdef' कमांड टाइप किया है, निम्न त्रुटि और चेतावनी मिली है: 'sdp: त्रुटि: वर्ग" फलक "अपरिभाषित वर्ग" आइटम "से विरासत में मिलता है। एसडीपी: त्रुटि: कक्षा "एंकर" अनिर्धारित कक्षा "आइटम" से विरासत में है। इसलिए मुझे हेडर फ़ाइल नहीं मिल सकती है। – Gon

+0

@ गॉन: ओएस एक्स का कौन सा संस्करण? जब मुझे मौका मिलता है तो मैं इसे देख लूंगा ... – NSGod

0

लोग हैं जो एक ही मुद्दा है कि मैं टिप्पणी में आपका उल्लेख में चलाने के लिए, बस ~/Desktop के पास जाओ (क्योंकि मैं इस स्थिति बताएं) और आप देखेंगे SBSystemPreferences.h बनाया गया है।

हालांकि, इस शीर्षलेख में, कुछ वर्ग घोषणाएं गायब हैं। तो आपको स्पष्ट रूप से यह घोषणाएं जोड़नी होंगी।

मेरे मामले में, कक्षा "आइटम" अपरिभाषित है। तो इसे जोड़ें: @class SBSystemPreferencesItem;

फिर संकलित करें और देखें कि अभी भी क्या गुम है, जो घोषणा को जोड़ने की आवश्यकता है। संदर्भ के लिए https://macosxautomation.com/system-prefs-links.html

URL की सूची:

1
NSURL *URL = [NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.speech?TTS"]; 
[[NSWorkspace sharedWorkspace] openURL:URL]; 

क्रेडिट निम्नलिखित साइट पर जाने के

Accessibility Preference Pane 
Main x-apple.systempreferences:com.apple.preference.universalaccess 
Display x-apple.systempreferences:com.apple.preference.universalaccess?Seeing_Display 
Zoom x-apple.systempreferences:com.apple.preference.universalaccess?Seeing_Zoom 
VoiceOver x-apple.systempreferences:com.apple.preference.universalaccess?Seeing_VoiceOver 
Descriptions x-apple.systempreferences:com.apple.preference.universalaccess?Media_Descriptions 
Captions x-apple.systempreferences:com.apple.preference.universalaccess?Captioning 
Audio x-apple.systempreferences:com.apple.preference.universalaccess?Hearing 
Keyboard x-apple.systempreferences:com.apple.preference.universalaccess?Keyboard 
Mouse & Trackpad x-apple.systempreferences:com.apple.preference.universalaccess?Mouse 
Switch Control x-apple.systempreferences:com.apple.preference.universalaccess?Switch 
Dictation x-apple.systempreferences:com.apple.preference.universalaccess?SpeakableItems 
Security & Privacy Preference Pane 
Main x-apple.systempreferences:com.apple.preference.security 
General x-apple.systempreferences:com.apple.preference.security?General 
FileVault x-apple.systempreferences:com.apple.preference.security?FDE 
Firewall x-apple.systempreferences:com.apple.preference.security?Firewall 
Advanced x-apple.systempreferences:com.apple.preference.security?Advanced 
Privacy x-apple.systempreferences:com.apple.preference.security?Privacy 
Privacy-Accessibility x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility 
Privacy-Assistive x-apple.systempreferences:com.apple.preference.security?Privacy_Assistive 
Privacy-Location Services x-apple.systempreferences:com.apple.preference.security?Privacy_LocationServices 
Privacy-Contacts x-apple.systempreferences:com.apple.preference.security?Privacy_Contacts 
Privacy-Diagnostics & Usage x-apple.systempreferences:com.apple.preference.security?Privacy_Diagnostics 
Privacy-Calendars x-apple.systempreferences:com.apple.preference.security?Privacy_Calendars 
Privacy-Reminders x-apple.systempreferences:com.apple.preference.security?Privacy_Reminders 
Privacy-Facebook x-apple.systempreferences:com.apple.preference.security?Privacy_Facebook 
Privacy-LinkedIn x-apple.systempreferences:com.apple.preference.security?Privacy_LinkedIn 
Privacy-Twitter x-apple.systempreferences:com.apple.preference.security?Privacy_Twitter 
Privacy-Weibo x-apple.systempreferences:com.apple.preference.security?Privacy_Weibo 
Privacy-Tencent Weibo x-apple.systempreferences:com.apple.preference.security?Privacy_TencentWeibo 
Dictation & Speech Preference Pane 
Dictation x-apple.systempreferences:com.apple.preference.speech?Dictation 
Text to Speech x-apple.systempreferences:com.apple.preference.speech?TTS 
Sharing Preference Pane 
Main x-apple.systempreferences:com.apple.preferences.sharing 
Screen Sharing x-apple.systempreferences:com.apple.preferences.sharing?Services_ScreenSharing 
File Sharing x-apple.systempreferences:com.apple.preferences.sharing?Services_PersonalFileSharing 
Printer Sharing x-apple.systempreferences:com.apple.preferences.sharing?Services_PrinterSharing 
Remote Login x-apple.systempreferences:com.apple.preferences.sharing?Services_RemoteLogin 
Remote Management x-apple.systempreferences:com.apple.preferences.sharing?Services_ARDService 
Remote Apple Events x-apple.systempreferences:com.apple.preferences.sharing?Services_RemoteAppleEvent 
Internet Sharing x-apple.systempreferences:com.apple.preferences.sharing?Internet 
Bluetooth Sharing x-apple.systempreferences:com.apple.preferences.sharing?Services_BluetoothSharing 
संबंधित मुद्दे