回答:
Automatorサービスを作成して、このApplescriptを実行し、システム環境設定のキーボードショートカットでキーボードショートカットを指定できます。
これにより、アラートとバナー通知が閉じられます
Automatorで新しいサービスを選択します
Applescriptの実行アクションを追加する
そしてそのコードを次のように置き換えます:
my closeNotif()
on closeNotif()
tell application "System Events"
tell process "Notification Center"
set theWindows to every window
repeat with i from 1 to number of items in theWindows
set this_item to item i of theWindows
try
click button 1 of this_item
on error
my closeNotif()
end try
end repeat
end tell
end tell
end closeNotif
[サービスは[すべてのアプリケーション]で[入力なし]を受け取ります]を設定します
サービスを保存します。
システム設定でキーボードショートカットを開き、「サービス」の下でサービスを設定します
これで、新しく起動したアプリがショートカットを選択します。
(注:通知/ウィンドウが閉じ始めたときに発生するエラーに対処するようにスクリプトを構成しました。
otifications / windowsには、1から合計カウントまでの番号が付けられています。しかし、スクリプトを閉じても、スクリプトは古いカウントのままです。ただし、システムはウィンドウのインデックスを再割り当てします。
したがって、1〜6で開始すると言うと、スクリプトはウィンドウ1、ウィンドウ2、ウィンドウ3などを閉じようとします。しかし、システムは最後に残ったウィンドウにウィンドウ番号1、2、3を再割り当てしました。ただし、スクリプトはウィンドウ4を閉じようとし、存在しないためエラーをスローします。スクリプトはこれをキャッチして処理します。)
アラート通知の「表示」ボタンをクリックする場合。クリックするボタンを1から2に変更します。
click button 2 of this_item
バナー通知にはボタンがありません2。
ただし、ウィンドウをクリックするだけです。
したがって、このコードは表示を処理する必要があります。
my closeNotif()
on closeNotif()
tell application "System Events"
tell process "Notification Center"
set theWindows to every window
repeat with i from 1 to number of items in theWindows
set this_item to item i of theWindows
set cnt to count buttons of this_item
try
if cnt > 1 then
click button 2 of this_item
else
click this_item
end if
on error
closeNotif()
end try
end repeat
end tell
end tell
end closeNotif
あなたが求めているものではありません:
バナータイプに表示される時間を制限することができます
ターミナルと次の貼り付け
defaults write com.apple.notificationcenterui bannerTime #
#番号記号を、バナー通知を保持する秒数に置き換えてから、ログオフして再度ログオンします。
元の機能(5秒)を復元するには defaults delete com.apple.notificationcenterui bannerTime
ノーと言ったのは知っていますが、スクリプトで通知のオン/オフを切り替えて、キーボードショートカットを割り当てることができます。コマンドラインからMountain Lionの通知センターを一時的に無効にしますか?
markhunteによる元のスクリプトは動作しますが、数ウィンドウ後に停止します。ウィンドウのリストには、現在表示されているウィンドウのみが含まれている場合があります。あまりにも多くの場合、これはすべてを閉じません。メインループの外側にループを追加して、ウィンドウカウントがゼロになるまでウィンドウを照会しました。コードは次のとおりです。
closeNotif()上のmy closeNotif()
tell application "System Events"
tell process "Notification Center"
set theWindows to every window
set nWindows to number of items in theWindows
repeat until nWindows is 0
repeat with i from 1 to number of items in theWindows
set this_item to item i of theWindows
try
click button 1 of this_item
delay 0.2
on error
my closeNotif()
end try
end repeat
set theWindows to every window
set nWindows to number of items in theWindows
end repeat
end tell
end tell
endcloseNotif