2

我试图理解 Cocoa 中的一些东西,但我被困在一件事上。我正在关注Minimalistic Cocoa Programming,它NSMenuItem负责终止应用程序。现在,我想创建另一个NSMenuItem带有快捷方式的 ,当按下它时,它NSLog是什么东西。但我不知道我应该把所说的选择器的实现放在哪里?我应该将整个子类化NSApplication吗?我应该setDelegate在某些NSObject情况下充当控制器吗?

4

1 回答 1

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];
于 2012-04-28T18:13:35.027 回答