Objective c 可以将变量传递到NSMenu操作中吗?
我正在基于数组动态构建菜单,有一个子菜单链接到iAction,iAction在Finder中打开一个文件夹。它打开的文件夹基于初始数组中对象的属性 在动态创建此数组时,是否有方法将NSMenuItem操作链接到iAction并传入此目录变量 或者我应该进入iAction并通过引用NSMenuItem和数组解析目录吗 e、 g 一个操作只接受一个“Objective c 可以将变量传递到NSMenu操作中吗?,objective-c,cocoa,nsmenuitem,nsmenu,Objective C,Cocoa,Nsmenuitem,Nsmenu,我正在基于数组动态构建菜单,有一个子菜单链接到iAction,iAction在Finder中打开一个文件夹。它打开的文件夹基于初始数组中对象的属性 在动态创建此数组时,是否有方法将NSMenuItem操作链接到iAction并传入此目录变量 或者我应该进入iAction并通过引用NSMenuItem和数组解析目录吗 e、 g 一个操作只接受一个“(id)sender”参数,其中调用该操作的对象应该被发送 但是,如果您的操作方法存在于某个目标C对象中(而不是单例对象或其他对象),那么您可以很容易地
(id)sender
”参数,其中调用该操作的对象应该被发送
但是,如果您的操作方法存在于某个目标C对象中(而不是单例对象或其他对象),那么您可以很容易地从您的操作中引用该对象的属性
希望这对您来说是清楚的,或者如果不清楚,请展示一点您的
iAction
代码,并告诉我们它的位置和声明方式。这就是我想要的
NSMenuItem *menuItem;
menuItem = [subMenu addItemWithTitle:@"Open folder" action:@selector(openDirectory:person.directory) keyEquivalent:@""];
[menuItem setRepresentedObject:person];
然后在IBAction中,我做了如下操作来提取目录:
- (IBAction)openDirectory:sender {
Person *person = [sender representedObject];
NSLog(@"directory: %@",person.directory);
啊,所以您确实使用了我的解决方案(访问对象的属性)。好!!
- (IBAction)openDirectory:sender {
Person *person = [sender representedObject];
NSLog(@"directory: %@",person.directory);