如何使NSMenu具有动态操作

Sep*_*tih 5 cocoa nsmenu

我想创建一个NSMenu,其选项类似于您在Windows资源管理器中找到的"发送到"选项,它将列出您可以将文件发送到的附加设备.

从我的研究看来,似乎不可能定义一个向函数发送参数的选择器,所以它不是一个例子@selector(@"sendToVolume:1").那么,如果项目数量未知,我还可以根据点击的项目执行不同的任务?

iKe*_*dac 15

NSMenuItem有一个representedObject属性,可用于存储您喜欢的任何内容,例如对项目所代表的目标的引用.

调用选择器后,您可以返回RepresentObject:

-(IBAction)sendTo:(id)sender {
    id destination = [sender representedObject];
}
Run Code Online (Sandbox Code Playgroud)