tauri软件隐藏菜单栏的实现方式

390 阅读1分钟

官方仓库issue:[feat] The Window Menu does not have a hide function · Issue #4401 · tauri-apps/tauri · GitHub

tauri没有可以直接隐藏菜单栏的api,但是有些场景是我们不需要菜单显示出来的,但是还是要有复制黏贴等功能,所以不能直接隐藏menu菜单,因为隐藏之后,mac上就不能复制黏贴等操作了。

1.第一种方式,就是单独开启mac的menu,但是windows和linux还是可以隐藏的,这样windows上就可以隐藏菜单,并且也会有复制黏贴等功能。

代码:

#[cfg(any(target_os = "linux", target_os = "windows"))]
    let menu = Menu::new();
    #[cfg(target_os = "macos")]
    let menu = Menu::new().add_submenu(Submenu::new(
        "Edit",
        Menu::new()
            .add_native_item(MenuItem::Undo)
            .add_native_item(MenuItem::Redo)
            .add_native_item(MenuItem::Copy)
            .add_native_item(MenuItem::Cut)
            .add_native_item(MenuItem::Paste)
            .add_native_item(MenuItem::SelectAll)
            .add_native_item(MenuItem::CloseWindow)
            .add_native_item(MenuItem::Quit),
    ));

 

2.隐藏docker栏

隐藏docker就会隐藏菜单栏,也会隐藏docker栏的图标。

.setup(|app| {
      // Make the docker NOT to have an active app when started
      app.set_activation_policy(tauri::ActivationPolicy::Accessory);
      Ok(())
    })

执行之后,就会隐藏docker图标,并且也会隐藏菜单栏图标。