8

我可以使用商品的标签属性来存储特殊的密钥/ID 还是用于其他用途?

预期用途示例:

  - (void)awakeFromNib {

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

  - (IBAction)popupAction: (id)sender {

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

  }
4

2 回答 2

8

是的tag,所有控件中的所有控件都是免费的,您可以随意使用,您可以为不同的项目使用不同的数字,或者将它们标识为一种项目,这取决于您。

于 2013-10-01T22:27:15.343 回答
3

正如文档所说:

您通常从 Interface Builder 将标签分配给菜单项,但您也可以setTag:使用NSMenuItem.

有关更多详细信息,请阅读应用程序菜单和弹出列表以及用户界面验证指南。但基本的想法是 Cocoa 不在乎你放了什么。

我相信预期的目的是让您将代码的各个部分松散地耦合在一起——验证用户操作的代码不必知道您的界面是如何设计的,您的界面也不必知道有关验证器的任何信息;他们只需要就一个数字达成一致。然而,在现代 Cocoa 中,只看动作同样容易,甚至更宽松,因此标签可以自由地用于您想要的任何东西。

于 2013-10-01T22:27:49.760 回答