在很多项目上使用 validateMenuItem
Using validateMenuItem on lots of items
这是一个 best-practices 问题:
我有许多菜单项可以根据关联 NSTableView 中 selected 的行数进行切换。例如,只有当有两行 select 时才允许 "Connect ends",而不是零,不是一行,只有两行。
我的问题是如何在 validateMenuItem 中引用这些。我知道操作方法在 menuItem 中发送,并且我可以 select 在标题文本上。但是,当应用程序本地化时,这是否有效?我也可以使用标签,但标签在某些方面是 "non standard",而且很容易忘记设置它们。
那么 best/easiest-to-maintain 这个问题的解决方案是什么?
如您所说,标题文字不安全,因为无论出于何种原因,它都可能发生变化。
一种更安全的方法是访问 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
}
这是一个 best-practices 问题:
我有许多菜单项可以根据关联 NSTableView 中 selected 的行数进行切换。例如,只有当有两行 select 时才允许 "Connect ends",而不是零,不是一行,只有两行。
我的问题是如何在 validateMenuItem 中引用这些。我知道操作方法在 menuItem 中发送,并且我可以 select 在标题文本上。但是,当应用程序本地化时,这是否有效?我也可以使用标签,但标签在某些方面是 "non standard",而且很容易忘记设置它们。
那么 best/easiest-to-maintain 这个问题的解决方案是什么?
如您所说,标题文字不安全,因为无论出于何种原因,它都可能发生变化。
一种更安全的方法是访问 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
}