You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在macOS React Native应用中下移NSWindow的窗口控制按钮(红绿灯)

React Native macOS 窗口控制按钮下移/工具栏样式定制问题

开发进度与目标

  • 默认窗口样式:默认窗口样式
  • 已实现效果:隐藏窗口标题并设置标题栏透明(忽略截图中的标题)已实现的透明无标题窗口
  • 期望效果:将窗口的「红绿灯」控制按钮下移,达到下图的工具栏样式效果目标窗口样式

当前实现代码(第二阶段效果)

目前通过扩展Objective-C的AppDelegate实现了隐藏标题+透明标题栏的效果,代码如下:

- (void)applicationWillBecomeActive:(NSNotification *)notification
{
  NSWindow *window = [[NSApplication sharedApplication] mainWindow];
  window.titleVisibility = NSWindowTitleHidden;
  window.titlebarAppearsTransparent = true;
  window.styleMask |= NSWindowStyleMaskFullSizeContentView;
}

尝试过的无效方案

方案1:添加空Toolbar

- (void)applicationWillBecomeActive:(NSNotification *)notification
{
  NSWindow *window = [[NSApplication sharedApplication] mainWindow];
  window.titleVisibility = NSWindowTitleHidden;
  window.titlebarAppearsTransparent = true;
  window.styleMask |= NSWindowStyleMaskFullSizeContentView;
  NSToolbar *toolbar = [NSToolbar init];
  window.toolbar = toolbar;
}

方案2:设置ToolbarStyle

- (void)applicationWillBecomeActive:(NSNotification *)notification
{
  NSWindow *window = [[NSApplication sharedApplication] mainWindow];
  window.titleVisibility = NSWindowTitleHidden;
  window.titlebarAppearsTransparent = true;
  window.styleMask |= NSWindowStyleMaskFullSizeContentView;
  window.toolbarStyle = NSWindowToolbarStyleUnified;
}

尝试过toolbarStyle的其他变体,但均无法实现目标效果。

内容的提问来源于stack exchange,提问作者Typestuck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:05:35