objective-c - Objective C/Cocoa 中的动态菜单

标签 objective-c xcode macos cocoa menu

如何在运行时在 Objective C 中动态添加(在运行时)菜单项?一个示例是为最近的文件添加 5 个菜单项。

A)添加菜单项看起来如何?

B)我如何设置检查以查看单击了哪个菜单项并获取索引或标识?

请不要建议非动态解决方案,例如添加槽和在运行时隐藏。我正在尝试弄清楚如何在运行时动态添加菜单项,这在其他一些平台上是相当简单的,我希望使该代码在 Mac 上运行良好。

添加:添加菜单项似乎很简单

NSMenuItem *item = [myMenu insertItemWithTitle:[NSString stringWithFormat:@"%blah"]];

但是如何获取动态添加的菜单项的事件呢?

最佳答案

当您添加项目时,为每个项目设置一个标签并传递操作。

检查一下-

 item = [myMenu addItemWithTitle:@"" action:@selector(HitMe:) keyEquivalent: @""];
[item setTag:10];

在代表中-

-(void)HitMe:(id) sender{
    NSMenuItem * item = (NSMenuItem*)sender;
    int val1 = [item tag];
    printf("Value1==>%d", val1);
}

关于objective-c - Objective C/Cocoa 中的动态菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31704274/

相关文章:

macos - 透明的NSTextView性能

ios - 从 xcodeproj 文件中删除构建配置和方案的脚本?

css - 使用 xampp 在 mac os x 上加载 css 和 jquery 文件时出现错误 403

ios - 自定义 UITableViewCell 中缺少附件

ios - UITableView 自定义拉动刷新 View 不显示

xcode - 在 Xcode 中保存/导出整个项目

xcode - 无法在 xcode 中隐藏导航栏

windows - 为应用程序选择合适的文件扩展名

ios - 我如何在 MKmapView 中拖动我的注释,就像 Google Pin Drop 和 Dragging :iOS

iOS - 为什么表格 View 不显示?