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

macOS Cocoa(Objective-C)如何以编程方式关闭Storyboard窗口

解决macOS Cocoa(Objective-C)中Storyboard窗口编程关闭问题

嘿,我之前从XIB转Storyboard的时候也踩过这个坑!你原来用的[_MainWindow close];在XIB里能正常工作,是因为XIB里可以直接把窗口对象关联成全局的IBOutlet,但Storyboard的窗口管理逻辑不一样,直接这么调用肯定失效。

Pat_Morita给的方案完全可行,你直接用这段代码就行:

[self.secondView.window close];

这里的核心逻辑是:在Storyboard中,窗口是依附在视图层级上的,你得通过已经关联到ViewController的某个视图(比如这里的secondView)来获取它所属的窗口实例。记得要先确保secondView已经在Storyboard里正确绑定到ViewController的IBOutlet哦,不然会出现空指针,窗口还是关不了。

另外给你补个小技巧:如果是要关闭应用的主窗口,也可以用[NSApp mainWindow] close];,这个方法不管是XIB还是Storyboard环境都能正常用,通用性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:31:12