Me gustaría crear un AppleScript (o un comando desde Terminal) que abra una nota específica desde la aplicación Notes de Apple, preferiblemente en una ventana aparte . Para que quede claro, no quiero crear una nueva nota; quiero abrir una existente. ¿Hay alguna forma de hacerlo?
Una vez abierta la nota, una forma de abrirla en una ventana separada podría ser activando el atajo de teclado 1
que abrirá la nota en una ventana separada. ¿Puedo utilizar AppleScript para activar los atajos de teclado?
Tenga en cuenta que puede asignar atajos de teclado personalizados a cualquier elemento de la barra de menús de una aplicación (véase esta página de apple para más información). He asignado 1
a Window > Float Selected Note
.
EDITAR : He descubierto cómo hacerlo con scripts de UI, pero tengo que esperar a que cada comando se ejecute individualmente, en lugar de que la nota se abra en una ventana separada inmediatamente. Todavía preferiría un método más rápido, así que considere que esta pregunta sigue sin respuesta y proporcione cualquier sugerencia que tenga.
En primer lugar, abre la nota y haz clic en el botón Añadir personas y haga clic en el título de su nota. A continuación, haga clic en copy link
. asegúrese de que el permiso se establece en Only people you invite can make changes
. Por último, haga clic en Share
. No te preocupes; a menos que empieces a añadir contactos, en realidad no has compartido la nota con nadie. Aunque tengan el enlace, otras personas no pueden acceder a ella a menos que hayan iniciado sesión en tu cuenta de iCloud.
A continuación, pega el siguiente código en el editor script y pega también tu enlace en la sección indicada a continuación
set Time0ut to 10
set Timestamp to current date
set debug to false
#####################################################
if application "Notes" is running then quit application "Notes"
repeat until application "Notes" is not running
if application "Notes" is running then quit application "Notes"
if application "Notes" is running then
if debug is true then say "Failed to quit"
delay 1
end if
if (((current date) - Timestamp)) Time0ut then
if debug is true then say "Timeout"
return
end if
end repeat
open location "https://www.icloud.com/notes/0TD6aphsUjK8vBscC6QgzWgXQ#Clipboard"
repeat until application "Notes" is running
if (((current date) - Timestamp)) Time0ut then
if debug is true then say "Timeout"
return
end if
end repeat
#####################################################
#####################################################
#####################################################
###########################
repeat 3 times
if application "Notes" is not running then return
try
tell application "Notes" to activate
menu_click({"Notes", "Window", "Float Selected Note"})
end try
delay 0.5
if application "Notes" is not running then return
if index of window "Notes" of application "Notes" is not 1 then
exit repeat
else
if application "Notes" is not running then return
if debug is true then say "Float Error"
delay 1
if application "Notes" is not running then return
end if
end repeat
###########################
###########################
repeat 3 times
if application "Notes" is not running then return
try
tell application "Notes" to activate
tell application "Notes" to close (every window whose name is "Notes")
end try
if application "Notes" is not running then return
if visible of window "Notes" of application "Notes" is false then
exit repeat
else
if application "Notes" is not running then return
if debug is true then say "Close Error"
delay 1
if application "Notes" is not running then return
end if
end repeat
###########################
###########################
repeat 3 times
if application "Notes" is not running then return
try
tell application "Notes" to activate
set bounds of ((every window whose name is not "Notes") of application "Notes") to {0, 23, 540, 323}
end try
if application "Notes" is not running then return
if (bounds of front window of application "Notes") is equal to {0, 23, 540, 323} then
exit repeat
else
if application "Notes" is not running then return
if debug is true then say "Resize Error"
delay 1
if application "Notes" is not running then return
end if
end repeat
###########################
#####################################################
#####################################################
#####################################################
on menu_click(mList)
local appName, topMenu, r
if mList's length < 3 then error "Menu list is not long enough"
set {appName, topMenu} to (items 1 through 2 of mList)
set r to (items 3 through (mList's length) of mList)
tell application "System Events" to my menu_click_recurse(r, ((process appName)'s ¬
(menu bar 1)'s (menu bar item topMenu)'s (menu topMenu)))
end menu_click
on menu_click_recurse(mList, parentObject)
local f, r
set f to item 1 of mList
if mList's length > 1 then set r to (items 2 through (mList's length) of mList)
tell application "System Events"
if mList's length is 1 then
click parentObject's menu item f
else
my menu_click_recurse(r, (parentObject's (menu item f)'s (menu f)))
end if
end tell
end menu_click_recurse