这是一个最佳实践问题:
我有许多菜单项可根据相关NSTableView中选择的行数进行切换。例如,只有在选择了两行时才允许“连接结束”,而不是零,而不是一行,只有两行。
我的问题是如何在validateMenuItem中引用它们。我知道action方法在menuItem中发送,我可以选择标题文本。但是,当应用程序本地化时,这是否有效?我也可以使用标签,但标签在某些方面是“非标准的”,忘记设置它们太容易了。
那么这个问题最好/最容易维护的解决方案是什么?
答案 0 :(得分:2)
标题文字并不安全,正如您所说,因为无论出于何种原因它都可能会发生变化。
更安全的方法是访问NSMenuItem
action
,并将其与@selector
字面值进行比较
像这样:
if ( [menuItem action] == @selector(connectEnds:) )
{
//Do your check to figure if you should return YES/NO here to validate the menu item
}