TouchBar
クラス: TouchBar
ネイティブ macOS アプリ向けに、TouchBar レイアウトを作成します
プロセス: Main
new TouchBar(options)
指定したアイテムの新しい Touch Bar を作成します。 BrowserWindow.setTouchBar
でウインドウに TouchBar
を追加することができます。
Note: TouchBar API は現在実験的な機能です。そのため、将来的には変更されたり削除されたりする可能性があります。
ヒント: Touch Bar 付きの MacBook をお持ちでない場合は、Touch Bar を使用するアプリの検証に Touch Bar シミュレータ をぜひご利用ください。
静的プロパティ
TouchBarButton
typeof TouchBarButton
型であり、TouchBarButton
クラスの参照です。
TouchBarColorPicker
typeof TouchBarColorPicker
型であり、TouchBarColorPicker
クラスの参照です。
TouchBarGroup
typeof TouchBarGroup
型であり、TouchBarGroup
クラスの参照です。
TouchBarLabel
typeof TouchBarLabel
型であり、TouchBarLabel
クラスの参照です。
TouchBarPopover
typeof TouchBarPopover
型であり、TouchBarPopover
クラスの参照です。
TouchBarScrubber
typeof TouchBarScrubber
型であり、TouchBarScrubber
クラスの参照です。
TouchBarSegmentedControl
typeof TouchBarSegmentedControl
型であり、TouchBarSegmentedControl
クラスの参照です。
TouchBarSlider
typeof TouchBarSlider
型であり、TouchBarSlider
クラスの参照です。
TouchBarSpacer
typeof TouchBarSpacer
型であり、TouchBarSpacer
クラスの参照です。
TouchBarOtherItemsProxy
typeof TouchBarOtherItemsProxy
型であり、TouchBarOtherItemsProxy
クラスの参照です。
インスタンスプロパティ
TouchBar
のインスタンスには以下のプロパティがあります。
touchBar.escapeItem
設定すると、タッチバーの "esc" ボタンを置き換える TouchBarItem
。 null
に設定するとデフォルトの "esc" ボタンが復元されます。 この値を変更すると、タッチバーのエスケープアイテムがすぐに更新されます。
サンプル
ボタンといくつかのラベルで構成される、シンプルな TouchBar 向けスロットゲームのコード例を示します。
const { app, BrowserWindow, TouchBar } = require('electron')
const { TouchBarLabel, TouchBarButton, TouchBarSpacer } = TouchBar
let spinning = false
// リールのラベル
const reel1 = new TouchBarLabel({ label: '' })
const reel2 = new TouchBarLabel({ label: '' })
const reel3 = new TouchBarLabel({ label: '' })
// スピンの結果のラベル
const result = new TouchBarLabel({ label: '' })
// スピンのボタン
const spin = new TouchBarButton({
label: '🎰 Spin',
backgroundColor: '#7851A9',
click: () => {
// 既にスピン中であればクリックを無視します
if (spinning) {
return
}
spinning = true
result.label = ''
let timeout = 10
const spinLength = 4 * 1000 // 4 秒
const startTime = Date.now()
const spinReels = () => {
updateReels()
if ((Date.now() - startTime) >= spinLength) {
finishSpin()
} else {
// それぞれのスピンの速度を少し遅くします
timeout *= 1.1
setTimeout(spinReels, timeout)
}
}
spinReels()
}
})
const getRandomValue = () => {
const values = ['🍒', '💎', '7️⃣', '🍊', '🔔', '⭐', '🍇', '🍀']
return values[Math.floor(Math.random() * values.length)]
}
const updateReels = () => {
reel1.label = getRandomValue()
reel2.label = getRandomValue()
reel3.label = getRandomValue()
}
const finishSpin = () => {
const uniqueValues = new Set([reel1.label, reel2.label, reel3.label]).size
if (uniqueValues === 1) {
// 3 つ全ての値が同じ
result.label = '💰 Jackpot!'
result.textColor = '#FDFF00'
} else if (uniqueValues === 2) {
// 2 つの値が同じ場合
result.label = '😍 やったね!'
result.textColor = '#FDFF00'
} else {
// 同じ値がない場合
result.label = '🙁 もう一度'
result.textColor = null
}
spinning = false
}
const touchBar = new TouchBar({
items: [
spin,
new TouchBarSpacer({ size: 'large' }),
reel1,
new TouchBarSpacer({ size: 'small' }),
reel2,
new TouchBarSpacer({ size: 'small' }),
reel3,
new TouchBarSpacer({ size: 'large' }),
result
]
})
let window
app.whenReady().then(() => {
window = new BrowserWindow({
frame: false,
titleBarStyle: 'hiddenInset',
width: 200,
height: 200,
backgroundColor: '#000'
})
window.loadURL('about:blank')
window.setTouchBar(touchBar)
})
上記のサンプルを実行する
上記のサンプルを実行するには、(予めターミナルで適当なディレクトリを開いた上で) 以下の操作を行ってください。
- 上記のコードを
touchbar.js
として保存する npm install electron
と入力し、 Electron をインストールします./node_modules/.bin/electron touchbar.js
と入力し、Electron でサンプルを実行する
すると、 Electron のウィンドウと、 Touch Bar 上(あるいは Touch Bar エミュレータ上)で動作するサンプルアプリをご覧になる事ができるはずです。