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

如何在macOS Cocoa Storyboard中固定窗口大小以匹配内容?

在macOS Cocoa Storyboard中实现窗口大小匹配内容的代码

方式一:在NSWindowController中配置

import Cocoa

class MainWindowController: NSWindowController {
    override func windowDidLoad() {
        super.windowDidLoad()
        
        // 移除窗口可调整大小的样式(可选,若要完全固定窗口大小)
        window?.styleMask.remove(.resizable)
        // 让内容视图自动适配其内部内容的尺寸
        window?.contentView?.sizeToFit()
        // 将窗口的最小/最大尺寸设置为内容尺寸,确保窗口无法被拉伸或缩小
        if let contentSize = window?.contentView?.frame.size {
            window?.minSize = contentSize
            window?.maxSize = contentSize
        }
    }
}

方式二:在NSViewController中配置

import Cocoa

class ViewController: NSViewController {
    override func viewDidAppear() {
        super.viewDidAppear()
        
        // 让窗口适配内容视图的尺寸
        view.window?.contentView?.sizeToFit()
        // 可选:固定窗口大小,禁止用户调整
        if let contentSize = view.window?.contentView?.frame.size {
            view.window?.minSize = contentSize
            view.window?.maxSize = contentSize
            view.window?.styleMask.remove(.resizable)
        }
    }
}

说明:

  • sizeToFit() 会让内容视图根据其内部控件的布局自动计算并调整到合适的尺寸,窗口会同步适配这个尺寸
  • 如果不需要固定窗口大小,仅需默认适配内容,可移除styleMask.remove(.resizable)和min/maxSize设置的代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:15:39