Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 可以将变量传递到NSMenu操作中吗?_Objective C_Cocoa_Nsmenuitem_Nsmenu - Fatal编程技术网

Objective c 可以将变量传递到NSMenu操作中吗?

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对象中(而不是单例对象或其他对象),那么您可以很容易地

我正在基于数组动态构建菜单,有一个子菜单链接到iAction,iAction在Finder中打开一个文件夹。它打开的文件夹基于初始数组中对象的属性

在动态创建此数组时,是否有方法将NSMenuItem操作链接到iAction并传入此目录变量

或者我应该进入iAction并通过引用NSMenuItem和数组解析目录吗

e、 g

一个操作只接受一个“
(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);