En una aplicación OSX Cocoa, me gustaría un botón que abriría el panel de preferencias de "voz". ¿Es eso posible? Sólo estoy tratando de salvar a la hora de ir a Preferencias del sistema> Voz> Texto a vozEl botón de cacao abre una página de preferencias del sistema
Respuesta
La siguiente es una manera bastante fácil (y fiable) a por lo menos conseguir abra Preferencias del Sistema para la Speech.prefPane:
- (IBAction)openSpeechPrefs:(id)sender {
[[NSWorkspace sharedWorkspace] openURL:
[NSURL fileURLWithPath:@"/System/Library/PreferencePanes/Speech.prefPane"]];
}
Sin embargo, no se cambiará necesariamente a la pestaña Text to Speech
, sino a la última pestaña que el usuario haya seleccionado.
También es posible cambiar a la pestaña Texto a voz, pero es un poco más complicado. Puede usar AppleScript para enviar comandos a la aplicación de preferencias del sistema, pero usar el ScriptingBridge.framework
(ver Scripting Bridge Programming Guide) es mucho más rápido.
Tendrá que añadir el ScriptingBridge.framework
a su proyecto, y luego usar un comando como el siguiente en el terminal para generar un archivo de cabecera SBSystemPreferences.h
para trabajar con:
sdef "/Applications/System Preferences.app" | sdp -fh --basename SBSystemPreferences -o ~/Desktop/SBSystemPreferences.h
añadir que SBSystemPreferences.h
cabecera de su proyecto, a continuación, cambiar -openSpeechPrefs:
a lo siguiente:
- (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];
}
}
}
EDIT:
Proyecto de ejemplo usando el método ScriptingBridge.framework: http://github.com/NSGod/OpenSystemPrefsTTS
Para los chicos que dirige en el mismo tema que he mencionado en el comentario, sólo tiene que ir a la ~/Desktop
(cos especifico esta posición) y verá el SBSystemPreferences.h
ha sido creado.
Sin embargo, en este encabezado, faltan algunas declaraciones de clase. Entonces debes agregar estas declaraciones explícitamente.
En mi caso, la clase "elemento" no está definida. Así que agregue esto: @class SBSystemPreferencesItem;
Luego, compílelo y vea lo que aún falta, qué declaración debe agregarse.
NSURL *URL = [NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.speech?TTS"];
[[NSWorkspace sharedWorkspace] openURL:URL];
Los créditos van a siguiente sitio: https://macosxautomation.com/system-prefs-links.html
Lista de direcciones URL de referencia:
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
- 1. ¿Cómo programáticamente programar el despertar del sistema usando las preferencias del sistema en una Mac?
- 2. cacao página PDF división
- 3. ActionBarSherlock: abre el submenú con el botón de menú
- 4. ¿Abre una página html en el navegador predeterminado con VBA?
- 5. Botón de cacao que se iluminará con el mouse sobre
- 6. WPF: ¿Cómo tener una plantilla de botón personalizado que utiliza el fondo del botón del sistema de forma predeterminada?
- 7. Cómo ocultar una página de preferencias en un eclipse RCP
- 8. La notificación abre la actividad, se presiona el botón Atrás, se abre la actividad principal?
- 9. abre una terminal de python
- 10. Hacer doble clic en el archivo JAR no abre el Símbolo del sistema
- 11. ¿Cómo se abre un cuadro de alerta cuando se hace clic en el botón de actualización del navegador?
- 12. Historial de página - ¿Existe el botón Atrás?
- 13. Menú contextual del botón derecho en la bandeja del sistema
- 14. ¿Cómo cambiar las preferencias del sistema de visualización de Retina en OSX?
- 15. Cambiar el sonido (u otras) Preferencias del Sistema en Mac OS X
- 16. cómo manejar el botón de cierre de la ventana en el cacao
- 17. Agregar acceso directo mediante el teclado a Mac Preferencias del sistema
- 18. JavaScript cargar una página en el botón clic
- 19. Cambiar la fecha del sistema para la prueba de unidad de cacao
- 20. Haciendo que se aprecie un botón de cacao, programáticamente
- 21. Obtener las preferencias del sistema de Android sin tener ningún contexto
- 22. mostrando una imagen en cacao
- 23. actualización de la página del botón Volver atrás Chrome: ASP.net
- 24. estado del coto de página para volver a visitar botón
- 25. el diálogo de jquery ui se abre solo una vez
- 26. preferencias del modo emacs python
- 27. Abre Google Plus página a través de Intención En Android
- 28. Cómo capturar el botón, haga clic en el evento de la página web (se abre dentro del control WebBrowser) en formato WPF?
- 29. Botón de retroceso página de actualización
- 30. ¿El iPhone admite cookies cuando se abre una página web en modo de pantalla completa?
Esto está muy bien, gracias. – Raffael
Escribí el comando 'sdef' en la terminal, recibí el siguiente error y advertencia:' sdp: error: la clase "panel" hereda de la clase indefinida "elemento". sdp: error: la clase "anchor" hereda de la clase indefinida "elemento" .' Por lo tanto, no puedo obtener el archivo de encabezado. – Gon
@Gon: ¿qué versión de OS X? Voy a echar un vistazo a esto cuando tenga la oportunidad ... – NSGod