NSMenuItem的标记属性的目的是什么?

时间:2013-10-01 22:25:51

标签: cocoa nsmenuitem

我可以使用item的tag属性来存储特殊的键/ ID,还是用于其他的?

预期用途示例:

  - (void)awakeFromNib {

    [self.popup addItemWithTitle: [NSString stringWithFormat: @"dummy title" ]];
    [[self.popup lastItem] setTag: 1658 ];
  }

  - (IBAction)popupAction: (id)sender {

    [self someMethod: [sender selectedItem].tag];

  }

2 个答案:

答案 0 :(得分:5)

是的,所有控件的tag都可以免费使用,您可以为不同的商品使用不同的数字,或者将它们识别为一种商品,这取决于您。

答案 1 :(得分:3)

正如the documentation所说:

  

您通常会为Interface Builder中的菜单项指定标签,但您也可以使用setTag:的{​​{1}}方法以编程方式指定它们。

有关详细信息,请阅读Application Menus and Pop-Up ListsUser Interface Validation指南。但基本的想法是,Cocoa并不关心你放在那里的东西。

我认为预期的目的是让你松散地将部分代码连接在一起 - 验证用户操作的代码不必知道你的界面是如何设计的,并且你的界面不需要知道任何关于验证器;他们只需就一个数字达成一致。然而,在现代的Cocoa中,只需看一下动作就可以轻松,甚至更松散,因此可以为任何你想要的东西释放标签。