在哪里放置NSMenuItem的选择器

时间:2012-04-28 15:53:08

标签: cocoa user-interface menu

我试着理解Cocoa中的一些东西,但我被困在一件事上。我正在关注Minimalistic Cocoa Programming,其中NSMenuItem负责终止该应用。现在,我想用快捷方式创建另一个NSMenuItem,按下时,它NSLog - 是一些东西。但我不知道我应该把执行器放在哪里呢?我应该对整个NSApplication进行子类化吗?我应该setDelegate到某个NSObject实例,充当控制器吗?

1 个答案:

答案 0 :(得分:2)

您需要创建一个可用作菜单项目标的类。像这样:

@interface Tester : NSObject
@end
@implementation Tester
- (void)logTest:(id)sender
{
    NSLog(@"Test");
}
@end

然后将其设为目标:

id testMenuItem = [[[NSMenuItem alloc] initWithTitle:@"Log Test" action:@selector(logTest:) keyEquivalent:@"l"] autorelease];
id tester = [[[Tester alloc] init] autorelease];
[testMenuItem setTarget:tester];