Відповіді:
Ви можете створити службу 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
Встановіть "Сервіс отримує [немає вводу]" у [будь-якій програмі] "
Збережіть послугу.
Відкрийте комбінації клавіш у префіксах системи та встановіть свою послугу в розділі "Послуги"
Тепер будь-який недавно запущений додаток підбере ярлик.
(Примітка. Я сконструював сценарій, щоб протистояти викиду помилки, яка станеться, коли сповіщення / вікна почнуть закриватися.
Відхилення / вікно пронумеровано від 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 () на 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
кінець закрити