如何在SwiftUI中根据前置窗口启用/禁用Mac菜单项?
AppKit中实现仅对特定窗口生效的菜单命令
我开发的应用包含3种业务窗口+1个设置窗口,部分菜单命令只需要对其中一种窗口类型生效。在AppKit里可以利用响应者链机制来实现这种需求:
- 给目标菜单项设置对应的动作
selector,并将菜单项的target设为nil - 系统会自动遍历当前的响应者链,查找能响应该
selector的响应对象:- 找到可响应的对象时,菜单项自动处于启用状态
- 未找到时,菜单项会自动禁用
- 整个过程不需要额外编写状态控制代码,系统会自动完成菜单项的启用/禁用逻辑
内容的提问来源于stack exchange,提问作者Duncan C
相关产品推荐
相关产品推荐

