Representing Files in a BrowserWindow (macOS)

概览

在 macOS 上,您可以为应用程序中的任何窗口设置一个代表文件。 代表文件的图标将显示在标题栏中,当用户 Command-单击Control-单击,一个带有文件路径的弹出窗口将会显示。

展示文件(Represented File)

注意:上面的屏幕截图是一个示例,其中此功能用于指示 Atom 文本编辑器中当前打开的文件。

您还可以设置窗口的编辑状态,以便文件图标可以指示该窗口中的文档是否已修改。

要设置窗口的代表文件,您可以使用 BrowserWindow.setRepresentedFilenameBrowserWindow.setDocumentEdited API。

示例

  • index.html
  • main.js
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Hello World!</title>
  6. <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
  7. <link rel="stylesheet" type="text/css" href="./styles.css">
  8. </head>
  9. <body>
  10. <h1>Hello World!</h1>
  11. <p>
  12. Click on the title with the <pre>Command</pre> or <pre>Control</pre> key pressed.
  13. You should see a popup with the represented file at the top.
  14. </p>
  15. </body>
  16. </body>
  17. </html>
  1. const { app, BrowserWindow } = require('electron')
  2. const os = require('os');
  3. function createWindow () {
  4. const win = new BrowserWindow({
  5. width: 800,
  6. height: 600
  7. })
  8. win.loadFile('index.html')
  9. }
  10. app.whenReady().then(() => {
  11. const win = new BrowserWindow()
  12. win.setRepresentedFilename(os.homedir())
  13. win.setDocumentEdited(true)
  14. })
  15. app.on('window-all-closed', () => {
  16. if (process.platform !== 'darwin') {
  17. app.quit()
  18. }
  19. })
  20. app.on('activate', () => {
  21. if (BrowserWindow.getAllWindows().length === 0) {
  22. createWindow()
  23. }
  24. })

Open in Fiddle

启动 Electron 应用程序后,在按下 CommandControl 键时单击标题。 You should see a popup with the represented file at the top. In this guide, this is the current user’s home directory:

Represented file