Estoy buscando específicamente para el diseño de una acción personalizada para la barra de inicio para que yo pueda iniciar un tweet de esa utilidad. Desde el Centro de Notificaciones tiene un "Click to tweet" botón, me preguntaba si el Centro de Notificaciones ha ganchos que me permitiría guión de esta sin esperar a que el desarrollador del programa agregar una función para realizar esta acción.
Respuestas
¿Demasiados anuncios?Las aplicaciones pueden enganchar en las opciones de compartir con el nuevo NSSharingService de la API. Esto suena como personalizados de la barra de inicio de las acciones se puede hacer con cualquier UNIX archivo ejecutable, por lo que probablemente podría escribir una pequeña herramienta de línea de comandos (o los que usted puede necesitar para construir una aplicación real, tendrás que probarlo) que activa esta API (usando NSSharingServiceNamePostOnTwitter
), y que debe mostrar el tweet de diálogo.
Actualización: para iniciar un tweet de AppleScript, puede hacer lo siguiente:
tell application "System Events"
tell process "Notification Center"
-- activate notification center
if (count of UI elements) is 1 then click first menu bar's first menu bar item
-- click the tweet button
click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "Window"
end tell
end tell
Además, puede activar la opción "Mostrar Alertas y Banners" / modo "no molestar":
tell application "System Events"
tell process "Notification Center"
key down option
click first menu bar's first menu bar item
key up option
end tell
end tell
(Todo esto es muy específico para el diseño actual de la ventana de Centro de Notificaciones y es probable que romper con el futuro de las actualizaciones de OS X -, pero probablemente habrá soluciones fáciles.)
Ninguno, que yo sepa (y de hecho creo que tener una cuenta en Twitter/Facebook post rápido zona interior de las notificaciones de la zona es realmente tonto (debe ser un widget de verdad), y me han desactivado), pero usted puede utilizar la línea de comandos para enviar una lectura de los tweets, como se menciona en esta página web, a continuación extractos:
Para mostrar una lista de tweets (reemplazar osxdaily con un nombre de usuario de twitter de su elección):
curl -s http://twitter.com/osxdaily | grep '' | cut -d">" -f2 | cut -d"<" -f1
Para actualizar tu estado en twitter:
curl -u your_user:your_password -d status='This is My update' https://twitter.com/statuses/update.xml
Teniendo todo esto un paso más allá y poner juntos lo que hemos aprendido hasta ahora, he aquí una totalmente programática tweet:
tell application "System Events"
tell process "Notification Center"
click menu bar item 1 of menu bar 1
click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "window"
keystroke "Content of the tweet"
keystroke "D" using {command down, shift down}
end tell
end tell
Por supuesto, esta es frágil, pero por ahora, funciona. Me encantaría encontrar un verdadero gancho, pero la interfaz de usuario de secuencias de comandos es una solución.
Brillante comando shift D.
Añadiendo:
display dialog "Tweet?" default answer "" buttons {"OK"} default button 1
set mytweet to text returned of result
tell application "System Events"
tell process "Notification Center"
click menu bar item 1 of menu bar 1
click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "window"
keystroke mytweet
keystroke "D" using {command down, shift down}
keystroke space
end tell
end tell
Escribí otro script que corrige algunos problemas en la secuencia de comandos publicado por Ewwis:
- No había manera de cerrar el cuadro de diálogo en el inicio.
- La segunda acción de clic no funciona si el Centro de Notificaciones no había sido demostrado después de la última sesión.
- La secuencia de comandos no funcionan cuando hay un retraso antes de que la vista para redactar un tweet fue mostrado. Si ya contenía algunas de texto, no se había aclarado.
- La pulsación de tecla comando sólo funciona para la inserción de caracteres que se pueden escribir con el método de entrada actual.
- El Centro de Notificaciones de la barra lateral no estaba cerrado al final.
No funciona cuando el Centro de Notificaciones de la barra lateral está abierto, aunque.
set answer to text returned of (display dialog "" default answer "")
try
set old to the clipboard as record
end try
try
set text item delimiters to linefeed
set the clipboard to paragraphs of answer as text
tell application "System Events"
tell process "Notification Center"
click menu bar item 1 of menu bar 1
try
windows
on error
click menu bar item 1 of menu bar 1
click menu bar item 1 of menu bar 1
end try
click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window 1
delay 0.1
keystroke "av" using command down
keystroke "d" using {shift down, command down}
repeat 100 times
try
delay 0.1
click menu bar item 1 of menu bar 1
exit repeat
end try
end repeat
end tell
end tell
end try
try
set the clipboard to old
end try
Sería más fácil usar la API.