【问题标题】:Calling the setTitle method on an NSMenuItem object is not changing the displayed title, but is changing the property在 NSMenuItem 对象上调用 setTitle 方法不会更改显示的标题,而是更改属性
【发布时间】:2011-06-17 05:57:02
【问题描述】:

将 MacRuby 与 XCode 结合使用,我希望能够更改应用程序菜单中项目的标题。

在我的简化示例中,我有一个带有按钮和标签的窗口,以及一个带有菜单项的菜单。

我创建了以下类并将@my_label 链接到标签,@my_menu 链接到菜单项,并将按钮单击链接到 button_clicked 方法。当您单击按钮时,标签的文本会更新为“有人按下按钮”,但实际显示的菜单标题并没有改变。

class MyWindowController < NSWindowController
    attr_accessor :my_label
    attr_accessor :my_menu

    def button_clicked(sender)
        @my_menu.setTitle("Someone pushed the button")
        @my_label.stringValue = @my_menu.title
    end

end

这似乎表明title 属性 正在更新,但没有显示更改。

我查看了 NSMenuItem 的文档,但看不到任何明显的错误。但是我对此很陌生,所以希望我只是缺少一些简单的东西。

如果这有什么不同的话,我正在使用 MacRuby 0.10 和 XCode 4。

保罗

【问题讨论】:

    标签: ruby cocoa xcode macruby


    【解决方案1】:

    这很奇怪。我将标签和按钮放在窗口上,将它们链接起来,然后在顶部的“查看”菜单上放置一个菜单项,并将其链接起来。 一切正常。 你有不同的设置吗?也许是状态栏菜单?

    您是否将控制器作为 xib 视图网格左侧的对象? (我猜你会这样做,因为你链接了所有东西,但仍然......)

    也许菜单项也链接到其他地方?

    菜单项会自动更新,所以这应该可以正常工作.. 再次检查连接。 我可以把我做的项目发给你试试,虽然我怀疑它会有所帮助..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多