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

如何通过Cocoa Bindings单独控制NSPopUpButton菜单项的启用状态?

单独控制NSPopUpButton菜单项的启用状态

要实现每个菜单项单独启用/禁用,你需要放弃绑定NSPopUpButton本身的Enabled属性(这个确实是控制整个按钮的),转而使用专门针对菜单项的绑定选项,步骤如下:

  • 取消按钮自身的Enabled绑定:如果之前给NSPopUpButton绑定了Enabled,先把它移除,避免冲突。
  • 关闭菜单的自动启用逻辑:选中NSPopUpButton关联的菜单(在IB里点进弹出按钮的菜单),在Attributes Inspector里找到Auto Enables Items,取消勾选这个选项。否则系统会根据菜单项的action响应状态自动控制启用,会覆盖你的绑定设置。
  • 绑定Item Enabled属性:回到NSPopUpButton的Bindings面板,找到Item Enabled选项(部分Xcode版本里可能显示为Enabled,注意是对应菜单项的绑定而非按钮整体),将其绑定到数组控制器的arrangedObjects.enabled。

这样设置后,每个菜单项的启用状态就会和你数组中对应对象的enabled属性同步——数组里某个对象的enabled为YES,对应的菜单项就会启用;为NO则禁用。

另外要确认你的数组控制器已经正确绑定到数据源,且arrangedObjects能正确访问到每个元素的localizedName和enabled属性,这部分你之前已经配置好了,应该没问题。

内容的提问来源于stack exchange,提问作者Frank R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:02:47