I am dynamically building menu's based on an array and there is a sub-menu is linked to an IBAction which opens a folder in Finder. The folder it opens is based on a property of the object in my initial array.
Is there a way of linked the NSMenuItem action to the IBAction and passing in this directory variable as I am dynamically creating this array?
OR should I be going into the IBAction and resolving the directory by referencing the NSMenuItem with against array?
e.g.
person = [[Person alloc] init];
// person is assigned
subMenu = [[NSMenu alloc] init];
[subMenu addItemWithTitle:@"Open folder" action:@selector(openDirectory:person.directory) keyEquivalent:@""];
An action only takes a "(id) sender
" parameter, where the object that called the action is supposed to be sent.
But if your action method lives in some Objective C object (and not a singleton or whatever), you can easily reference that object's properties from your action.
Hopefully this is clear to you or if not, show a bit of your IBAction
code and tell us where it lives and how it's declared.