TouchBar
类: TouchBar
为原生 macOS 应用程序创建 TouchBar 布局
进程: 主进程
new TouchBar(options)
使用指定的项目创建一个新的触控栏。使用 BrowserWindow.setTouchBar
将 TouchBar
添加到窗口。
注意: TouchBar API 目前是实验性的,未来 Electron 版本中可能会更改或删除。
提示: 如果您没有配备触控栏的 MacBook,可以使用 Touch Bar Simulator 来测试您的应用中 Touch Bar 的使用情况。
静态属性
TouchBarButton
一个指向 TouchBarButton
类的 typeof TouchBarButton
引用。
TouchBarColorPicker
一个指向 TouchBarColorPicker
类的 typeof TouchBarColorPicker
引用。
TouchBarGroup
一个指向 TouchBarGroup
类的 typeof TouchBarGroup
引用。
TouchBarLabel
一个指向 TouchBarLabel
类的 typeof TouchBarLabel
引用。
TouchBarPopover
一个指向 TouchBarPopover
类的 typeof TouchBarPopover
引用。
TouchBarScrubber
一个指向 TouchBarScrubber
类的 typeof TouchBarScrubber
引用。
TouchBarSegmentedControl
一个指向 TouchBarSegmentedControl
类的 typeof TouchBarSegmentedControl
引用。
TouchBarSlider
一个指向 TouchBarSlider
类的 typeof TouchBarSlider
引用。
TouchBarSpacer
一个指向 TouchBarSpacer
类的 typeof TouchBarSpacer
引用。
TouchBarOtherItemsProxy
一个指向 TouchBarOtherItemsProxy
类的 typeof TouchBarOtherItemsProxy
引用。
实例属性
以下属性在 TouchBar
的实例上可用
touchBar.escapeItem
当设置时,将替换触控栏上“esc”按钮的 TouchBarItem
。设置为 null
将恢复默认的“esc”按钮。更改此值会立即更新触控栏中的 escape item。
示例
下面是一个简单的老虎机触控栏游戏的示例,其中包含一个按钮和一些标签。
const { app, BrowserWindow, TouchBar } = require('electron')
const { TouchBarLabel, TouchBarButton, TouchBarSpacer } = TouchBar
let spinning = false
// Reel labels
const reel1 = new TouchBarLabel({ label: '' })
const reel2 = new TouchBarLabel({ label: '' })
const reel3 = new TouchBarLabel({ label: '' })
// Spin result label
const result = new TouchBarLabel({ label: '' })
// Spin button
const spin = new TouchBarButton({
label: '🎰 Spin',
backgroundColor: '#7851A9',
click: () => {
// Ignore clicks if already spinning
if (spinning) {
return
}
spinning = true
result.label = ''
let timeout = 10
const spinLength = 4 * 1000 // 4 seconds
const startTime = Date.now()
const spinReels = () => {
updateReels()
if ((Date.now() - startTime) >= spinLength) {
finishSpin()
} else {
// Slow down a bit on each spin
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) {
// All 3 values are the same
result.label = '💰 Jackpot!'
result.textColor = '#FDFF00'
} else if (uniqueValues === 2) {
// 2 values are the same
result.label = '😍 Winner!'
result.textColor = '#FDFF00'
} else {
// No values are the same
result.label = '🙁 Spin Again'
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 - 在 Electron 中运行示例:
./node_modules/.bin/electron touchbar.js
然后您应该看到一个新的 Electron 窗口,以及在您的触控栏(或触控栏模拟器)中运行的应用。