macOS Sierraの通知センターで[今日]タブと[通知]タブを切り替える方法


1

キーボードショートカットを使用して、通知センターのタブ([今日]タブと[通知]タブ)を切り替えられるようにします。macOS Sierraでそれを行う方法はありますか?

ヨセミテでそれが可能であったことは知っていますが、ヨセミテは一度もなかったので、確認できませんでした。

編集:キーボードショートカットを使用せずに、アップルスクリプトを実行できるようにします。アップルスクリプトを使用して、サードパーティプログラムに配置して結果を取得できます。

また、以下のコードは部分的に機能しました。まず、if / elseを先頭に配置して、次のように動作させることは可能ですか?

通知センターが既に開いている場合は、次の項目([今日]ボタンと[通知]ボタンを切り替える)に移動しますが、開いていない場合は、開いてボタンを切り替えます。


Yosemiteにキーボードショートカットがあったと思われる理由はわかりませんが、この質問はそうではありません。これまでになかったと思います。
tubedogg

回答:


1

私は少しグーグルをしましたが、ネイティブキーボードショートカットを見つけることができませんでしたセンター。もちろん、これは最後に表示されていたビューに対して通知センターを開くだけです。

ただし、[システム環境設定]> [キーボード]> [ショートカット]に移動すると、[フルキーボードアクセス:ウィンドウとダイアログで、Tabキーを押してキーボードフォーカスを移動できます]と2つのラジオボタン、[テキストボックスとリストのみ](デフォルト) 「すべてのコントロール」。[すべてのコントロール]を選択すると、タブ、エンター、矢印キーなどを使用して、通知センターをナビゲートできる場合があります。現時点ではそれをテストすることはできません。なぜ「...は使用できるかもしれません...」と言ったのでしょうか

AppleScriptの回避策は、キーボードショートカットを割り当てるスクリプトを使用できるサードパーティアプリまたはキーボードショートカットを割り当てることができるAutomatorサービスのいずれかで使用されます。

以下のAppleScript コードは、通知センターの2つのボタンの状態を切り替えます。

try
    tell application "System Events"
        tell process "SystemUIServer"
            click menu bar item "Notification Center" of menu bar 1
        end tell
        tell application "System Events"
            tell process "Notification Center"
                if value of radio button "Today" of radio group 1 of window "NotificationTableWindow" is equal to 1 then
                    click radio button "Notifications" of radio group 1 of window "NotificationTableWindow"
                else
                    click radio button "Today" of radio group 1 of window "NotificationTableWindow"
                end if
            end tell
        end tell
    end tell
end try

必要に応じて、特定のボタンだけで動作するようにコードを変更することもできます。それを修正する方法は明らかですが、追加のヘルプが必要かどうかは自由に尋ねることができます。


さて、私はそれを少し遊んでみましたが、実際に機能しました。部分的に。通知センターが閉じている場合にのみ機能します。また、応答不可、それ以外の場合は、次のエラーをクラッシュして与える有効にすることはできません。システムイベントは、エラーを得た:プロセスのメニューバー1「SystemUIServer」のメニューバー項目「通知センター」を取得できません
user3735534

1
@ user3735534では、上記のサンプルコードをtryステートメントでラップできるため、重大なエラーがスローされません。私はそれを答えに当てました。
user3439894

0

macOS High Sierraでは、通知センターウィンドウのアクセシビリティ名が「通知センター」に変更されました。

次のAppleScriptは、macOS High Sierra(10.13)、Sierra(10.12)、および場合によってはそれ以前のバージョンでも、2つのタブ(TodayとNotifications)を切り替えることができるはずです。

on osVersion()
    set _major to system attribute "sys1" -- 10
    set _minor to system attribute "sys2" -- 13 for High Sierra
    return (_major as string) & "." & (_minor as string)
end osVersion

on toggleNotificationCenter()
    tell application "System Events"
        tell process "SystemUIServer"
            click menu bar item "Notification Center" of menu bar 1
        end tell
    end tell
end toggleNotificationCenter

on toggleCenterButton()
    set notificationWindowName to "Notification Center" -- High Sierra
    considering numeric strings
        if osVersion() < "10.13" then
            set notificationWindowName to "NotificationTableWindow"
        end if
    end considering

    tell application "System Events"
        tell process "Notification Center"
            if value of radio button "Today" of radio group 1 of window notificationWindowName is equal to 1 then
                click radio button "Notifications" of radio group 1 of window notificationWindowName
            else
                click radio button "Today" of radio group 1 of window notificationWindowName
            end if
        end tell
    end tell
end toggleCenterButton


try
    toggleNotificationCenter()
    toggleCenterButton()
on error
    toggleNotificationCenter()
    toggleCenterButton()
end try
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.