如何在 NSMenuItem 的操作上设置发件人?
Posted
技术标签:
【中文标题】如何在 NSMenuItem 的操作上设置发件人?【英文标题】:How do I set the sender on a NSMenuItem's action? 【发布时间】:2011-02-18 22:31:12 【问题描述】:Apple 文档说传递给 NSMenuItem 动作的发送者可以设置为一些自定义对象,但我似乎无法弄清楚如何做到这一点。有没有我在文档中没有看到的方法?
【问题讨论】:
【参考方案1】:我不确定您指的是哪份文档(链接会有所帮助)。
您可以使用NSMenuItem
的-setRepresentedObject:
方法将任意对象与菜单项相关联:
//assume "item" is an NSMenuItem object:
NSString* someObj = @"Some Arbitrary Object";
[item setRepresentedObject:someObj];
[item setAction:@selector(doSomething:)];
那么当菜单项发送它的动作消息时,你就可以得到对象:
- (IBAction)doSomething:(id)sender
NSLog(@"The menu item's object is %@",[sender representedObject]);
【讨论】:
我一时想不起是什么文档,但我最终还是弄明白了。 愚蠢的问题:既然我们可以使用 NSMenuItem 标题,为什么还要使用代表对象? 您不应该使用标题,因为它们可以本地化等。最好使用-representedObject
,因为它旨在存储任意数据。以上是关于如何在 NSMenuItem 的操作上设置发件人?的主要内容,如果未能解决你的问题,请参考以下文章