2011-03-30 31 views
1

对XCode使用MacRuby,我希望能够更改应用程序菜单中项目的标题。在NSMenuItem对象上调用setTitle方法不会改变显示的标题,但会改变属性

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

我创建了以下类,并将@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,如果这有什么区别。

Paul

回答

0

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

您是否将控制器作为xib视图网格左侧的对象? (我给你做了,因为你把所有东西都联系起来了,但是还是...)

也许菜单项也链接到别的地方了?

菜单项自动更新,所以这应该很好..只需再次检查连接。 我可以寄给你我所做的项目,尽管我怀疑它会对你有帮助..

相关问题