2017-03-18 32 views
2

私はフルスクリーンオーバーレイを表示するa macOS menu bar applicationを作っています。ユーザは、メニューバーのスライダを介してこのオーバーレイの不透明度を制御することができます。これらのコントロールをタッチバーに移動したいのは、アプリケーションがスクリーンレコーディングに使用され、メインスクリーン上の注意散漫が記録されるためです。アプリケーションのスライダは、デフォルトでタッチバーにある輝度スライダやボリュームスライダと同じように機能するはずです。アプリケーションのタッチバーをmacOS上に常に表示させるにはどうすればよいですか?

私はNSTouchBarをサブクラス化してNSApplicationとし、makeTouchBarを実装しました。このバーは、アプリケーションが最初に起動されたときに表示されます。ただし、他のアプリケーションにフォーカスするとタッチバーが消えてしまい、アプリケーションのタッチバーを再度表示する方法がないようです。問題は、私のアプリケーションは、ウィンドウのない純粋なメニューバーアプリケーションだと思います。ここで

は、私が最も好ましいから少なくとも好適に、目に見える自分のアプリケーションのタッチバーを作ることができる方法があります。

  1. は、明るさと音量アイコンの隣にコントロールストリップに自分のアプリケーションのアイコンを追加します。これにより、他のアプリケーションがフォーカスされている場合でも、ユーザーが私のアイコンを押して不透明度を調整できるようになります。しかし、不思議なことに、I am told that there is no public API to manipulate the control strip

  2. 何らかの形で私のユーザーにアプリケーションをコントロールストリップに手動で追加する方法を教えてください。コントロールストリップは、System Preferences > Keyboard > Customize Control Strip ...でカスタマイズできます。コントロールストリップにドラッグアンドドロップする方法はさまざまです。私はここに含める項目として自分のアプリケーションを登録したいと思います。しかし、私はこれを行う方法を見つけることができません。

  3. 私のアプリケーションを音楽アプリケーションとして登録します。私のマシンでSpotifyは何とかコントロールストリップ(iTunesが使用するのと同じアイコン)の "音楽"アイコンを使用します。私はSpotifyがこれをどうやって行うのか分かりません - 他の人は知っていますか?私のアプリケーションはオーディオを再生していないので、明らかに、これはハックですが、何よりも優れています。

  4. アプリのタッチバーが常に表示されるように、アプリの領域をオーバーライドして、他のすべてのアプリケーションのタッチバーの使用を邪魔します。他のアプリケーションではうまく動作しないため、これは理想的ではありません。

これらの解決策はありますか?他にも解決策はありますか?タッチバーからアプリケーションのタッチバーにいつでもアクセスできるようにするにはどうすればよいですか?

+0

あなたはこれを行う方法を理解しましたか? – user2397282

+0

@ user2397282私の知る限り、それは不可能です。 – jameshfisher

+0

参照:https://github.com/a2/touch-baer –

答えて

1

はたぶん、いくつかのハック解決策はありますが、あなたがそれを行うことはできません公式ドキュメントによると:サポートされているMacBook Proのモデルで https://developer.apple.com/reference/appkit/nstouchbar

、キーボードの上にタッチバー、 はのインスタンスを示して最前面のアプリからのNSTouch Barクラス。

+1

アプリウィンドウをバックグラウンドで実行したとしますか?他のアプリケーションが使用されている間、Spotifyアプリケーションはこれをうまく実行します –

0

アプリケーションをコントロールストリップ領域(ボリュームコントロールとフレンドが常駐する場所)に置くことができた場合、ユーザーはそこをタッチしてタッチバーを表示できます。アイデアを得るには、hazeoverのTouchSwitcherを参照してください。

関連する問題