gpt4 book ai didi

cocoa - 如何验证通过 Cocoa Bindings 动态填充的菜单项

转载 作者:行者123 更新时间:2023-12-03 16:43:45 25 4
gpt4 key购买 nike

背景
我正在通过 Cocoa Bindings 填充 TableView 的 NSPopupMenuCell 菜单。一切都很好(我已经绑定(bind)了“内容”、“内容值”和“选定的对象”)。菜单在运行时正确填充,并且底层变量已正确设置(通过 KVC)。一切都以此为目的。

我的问题
接下来我想控制填充的菜单项的状态(因为有些菜单项需要禁用)。现在我已经阅读了Apple关于Enabling Menu Items的文档非常小心......但在我的一生中,我似乎无法实现 validateMenuItem: 或 validateUserInterfaceItem: ,它们实际上会被调用。

我已经尝试过,除其他外,在已经存在的应用程序委托(delegate)中实现这些方法,但没有任何乐趣。我是否可能误解了 First Responder 链?

此外,从逻辑上讲,另一种可能性是菜单项实际上确实有目标(上面假设它们没有)。但是,我似乎无法识别他们的目标(以便我可以在那里实现 validateMenuItem:)。

最佳答案

NSPopupMenuCell 中动态(通过绑定(bind))创建的 NSMenuItem 的目标,结果是 NSPopupMenuCell 本身(因此您可以子类化)它并在那里实现 validateMenuItem:)。

我想这是因为 NSPopupMenuCell 需要执行 KVC 调用(即 setValue:forKey:)。

关于cocoa - 如何验证通过 Cocoa Bindings 动态填充的菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com