В документации Apple говорится, что отправитель, переданный действию NSMenuItem, может быть установлен на некоторый пользовательский объект, но я, может казаться, не выясняю, как сделать это. Существует ли метод, который я не вижу где-нибудь в документации?
Я не уверен, на какую документацию вы ссылаетесь (может помочь ссылка).
Вы можете использовать метод -setRepresentObject:
из NSMenuItem
, чтобы связать произвольный объект с элементом меню:
//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]);
}