【问题标题】:Binding an NSMenuItem's title breaks enabled/disabled validation绑定 NSMenuItem 的标题中断启用/禁用验证
【发布时间】:2010-07-26 17:15:24
【问题描述】:

我有一个菜单,其中一些菜单项使用绑定来获取它们的标题。这些项目始终处于启用状态,并且既不会像应有的那样自动启用/禁用,也不会导致调用 validateUserInterfaceItem:。如果您删除标题上的绑定,那么它将再次开始工作。菜单项的目标设置为 nil(First Responder)。如果你点击一个,它会执行选择器(动作)。

错误?怎么办?

【问题讨论】:

  • 请注意,近 5 年后仍然如此。
  • 在那之后还有两年。
  • 2019 年也是如此。

标签: cocoa cocoa-bindings


【解决方案1】:

由于某种原因,当您使用绑定设置菜单项的标题时,该菜单项将变为启用状态 即使目标/操作是nil

如果您想永久禁用菜单项,您可以通过将菜单项的 enabled 状态绑定到常量 NO 来解决此问题:

NSNumber *alwaysNo = [NSNumber numberWithBool:NO];
[menuItem bind:@"enabled" toObject:alwaysNo withKeyPath:@"boolValue" options:nil];

请注意,这不是最优雅的解决方法,但在我的情况下,它仍然比不使用标题绑定更干净。

【讨论】:

    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 2011-05-30
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多