cocoa - NSMenuItem 的选择器放在哪里

标签 cocoa user-interface menu

我试图理解 Cocoa 中的一些东西,但我陷入了一件事。我正在关注Minimalistic Cocoa Programming ,其中有一个 NSMenuItem 负责终止应用程序。现在,我想创建另一个 NSMenuItem,并带有一个快捷方式,当按下时,它会 NSLog-s 一些东西。但我不知道该选择器的实现应该放在哪里?我应该子类化整个 NSApplication 吗?我应该 setDelegate 到某个 NSObject 实例,充当 Controller 吗?

最佳答案

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

@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];

关于cocoa - NSMenuItem 的选择器放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365127/

相关文章:

java - Android Java GUI freeze/w ProgressBar

javascript - 为什么这不能阻止默认链接?

jquery - 如何使用next()在jquery中找到最接近的ul?

macos - 将 NSArrayController 的 ManagedObjectContext 设置为 nil 时崩溃

java - 黑莓:如何正确处理自定义字段中的焦点遍历?

objective-c - 这个工具栏样式的 Cocoa UI 元素是什么?

c++ - 带有 qt5 (qml) 的无框窗口

Android:如果这样就改变菜单?

objective-c - 当我调整窗口大小时 NSTableView 自动重新加载 如何禁用它

ios - OS X 是否限制辅助线程的内存使用?