1

使用 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 一起使用。

保罗

4

1 回答 1

0

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

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

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

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

于 2011-06-16T21:57:02.063 回答