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

技术问询:NSOpenPanel的urls属性是否可能为空?

关于NSOpenPanel.urls是否可能为空的问题

好问题!咱们结合你的代码和AppKit的行为来拆解分析:

首先看你的代码配置:你没有修改NSOpenPanel的allowsEmptySelection属性,这个属性的默认值是false。在这个默认规则下,NSOpenPanel的OK按钮会被自动禁用,直到用户选中了至少一个符合你设置的canChooseFiles、canChooseDirectories条件的项目。

这就意味着,当你拿到returnCode == NSApplication.ModalResponse.OK的结果时,用户必然已经选中了至少一个合法项目,此时openPanel.urls不可能为空。

那有没有极端例外情况?比如通过私有API或者系统异常强制触发OK按钮?这种情况在正常的App开发场景下完全不需要考虑,AppKit的框架逻辑已经严格保证:只要用户能点击OK,就一定有选中的项目。

回到你的代码里,那个if chosenItems.isEmpty的判断其实是多余的——因为走到这个分支的前提是returnCode为OK,而此时urls肯定有内容。不过如果之后你需要允许用户空选中(比如设置allowsEmptySelection = true),这个判断就会派上用场,但当前代码的配置下完全可以去掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:26:09