标签: nsmenu

validateMenuItem:未调用

我面临一个奇怪的情况.我NSMenu有一个子菜单.子菜单的内容以编程方式填充.在我的validateMenuItem:方法中,我可以看到所有被检查的项目(父项的项目)以及子项目(一旦我点击子菜单),除了我自动填充的子菜单中的项目.

这是为什么?难道我做错了什么?关于如何解决这个问题的任何想法?

macos cocoa objective-c nsmenu

5
推荐指数
2
解决办法
3333
查看次数

如何在NSMenuItem中绘制内联样式标签(或按钮)

当App Store有更新时,它会在菜单项中显示内联样式元素,如下面屏幕截图中的"1 new":

在此输入图像描述

另一个我们可以看到这种菜单的地方是10.10 Yosemite的分享菜单.当您安装添加新共享扩展程序的任何应用时,共享菜单中的"更多"项目将显示"N new",就像应用商店菜单一样.

'App Store ...'项看起来很正常NSMenuItem.是否有一种简单的方法来实现它,或者是否有任何支持它的API而没有为菜单项设置自定义视图?

macos cocoa objective-c nsmenu nsmenuitem

5
推荐指数
1
解决办法
541
查看次数

如何更改Cocoa中的主菜单?

我有一个带有两种类型窗口的可可应用程序,每种窗口都需要显示不同的主菜单.

在我的MainMenu.xib中,我有默认的MainMenu.在Window1.xib中我有Window1,在Window2.xib中我有Window2,它是MainMenu.

当我打开第一个窗口时,我有默认菜单,当我打开Window2时,我得到它的菜单.

但是,当我切换回Window1时,我仍然看到Window2的菜单.如何使显示的菜单跟随关键窗口?

macos cocoa objective-c nsmenu

4
推荐指数
2
解决办法
4706
查看次数

Cocoa应用程序菜单 - 如何重新创建?

在MainMenu.xib中我删除了默认的主菜单,它自动为您提供应用程序菜单(以及文件/编辑/格式/视图/窗口/帮助菜单).

将这个添加回我的应用程序需要采取哪些步骤?

macos cocoa nsmenu

4
推荐指数
1
解决办法
564
查看次数

删除Cocoa应用程序中的"打开最近"菜单项

我找到了一群人问这个(删除或禁用最近的项目子菜单),没有答案.

经过一番调查......问题是Apple已秘密硬编码该特定菜单总是出现 - 即使你删除它,NSWindowController也会默默地重新创建它.

macos cocoa objective-c nsmenu

4
推荐指数
1
解决办法
1417
查看次数

创建NSMenuItem的动态计数

我目前正在努力使用Mac OS X中的动态UI.我创建了一个菜单栏项,并希望在其中添加动态计数的MenuItems.

元素的数量取决于计算机上的网络接口.我的Mac有两个接口,另一个可能只有一个或三个.

元素的创建不是问题.但是我想在后面的代码中引用这些元素.

-(void)addItems
{
    NSMenuItem *menuItem = [menu addItemWithTitle:@"Start" action:@selector(click:) keyEquivalent:@""];
}
Run Code Online (Sandbox Code Playgroud)

然后我想更新元素的标题:

-(IBAction)click:(id)sender
{
    [menuItem setTitle:@"Clicked!"];
}
Run Code Online (Sandbox Code Playgroud)

原因是,"click"动作返回未声明的标识符(menuItem).问题是,我不能在头文件中声明它们,因为它们是动态的,它们可能达到100个项目的数量,因此我不能声明10个项目并使用它们.

我该如何处理这些情况?希望你能帮我!

招呼,朱利安

add dynamic objective-c nsmenu nsmenuitem

4
推荐指数
1
解决办法
935
查看次数

cocoa NSMenu将NSMenuItem添加到位

我正在尝试在我的应用程序中创建一个NSMenu.我成功地创建了一些固定项目的菜单,现在我必须以编程方式添加一些项目.我也成功了,但它将项目添加到其他项目的底部.有一种方法可以将这个以编程方式创建的项目放在固定项目之间吗?这是我的代码:

.H:

@interface AppController : NSObject {

    IBOutlet NSMenu *statusMenu;
    NSStatusItem *statusItem;
}
Run Code Online (Sandbox Code Playgroud)

.M

  [statusMenu setAutoenablesItems:NO];

    statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
    [statusItem setMenu:statusMenu];

    NSImage *statusImage = [[NSImage alloc] initWithContentsOfFile:@"Icon.icns"];
    [statusItem setImage:statusImage];
    [statusItem setTitle:@"Multibox"];
    [statusItem setHighlightMode:YES];

    NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:@"Carlo | 0000000000" 
                                                  action:@selector(fooClicked:) keyEquivalent:@""]; 
    [item setTarget:self];
    [statusMenu addItem:item];
Run Code Online (Sandbox Code Playgroud)

cocoa nsmenu nsmenuitem

4
推荐指数
1
解决办法
1814
查看次数

Cocoa - 将 onClick 事件分配给 NSMenu

我希望我的状态菜单在单击时调用一个函数。让我分配该操作的方法是什么?类似于下面的菜单本身。

NSMenuItem* item = [[NSMenuItem alloc] initWithTitle:@"Title" action:@selector(doX) keyEquivalent:@""];

macos cocoa nsmenu

4
推荐指数
1
解决办法
1536
查看次数

在Cocoa应用程序中将静态项添加到"Windows"菜单

我有一个带有2个窗口的应用程序(想像Twitter时间轴和提及).目前我在"文件"菜单中有"时间轴⌘1"和"提及⌘2"菜单,但这有点不对劲.所以我只是通过拖放将它们移动到"Windows"菜单.

当我打开应用程序时,一切都很好,我可以在"Windows"菜单中查看两个菜单项.但是当我关闭例如提及窗口时,菜单项"提及⌘2"消失,我无法再打开此窗口.

我看过其他应用程序,其中大多数都有自己的菜单项来显示"Windows"菜单中的窗口,它们在关闭窗口后也不会消失.我知道Cocoa使用"Window"菜单项进行躯体魔术,这样做非常好(因为我打开了一些需要出现并从那里消失的其他窗口),但我怎么能让那两个物品有什么静电所以它们不会消失?

macos cocoa nsmenu nswindow nsmenuitem

4
推荐指数
1
解决办法
807
查看次数

将一个 NSMenu 添加到一个 NSTableCellView 中,它会在右键单击时弹出

我想NSMenu在用户右键单击 aNSTableCellView中的a时弹出a NSTableView

let cell = myTableView.make(withIdentifier: "myCustomTableCellView", owner: self) as! MyTableCellView // subclass of NSTableCellView

let menu = NSMenu()
menu.autoenablesItems = false
menu.addItem(NSMenuItem(title: "Test", action: nil, keyEquivalent: ""))

cell.menu = menu
Run Code Online (Sandbox Code Playgroud)

但是如果用户单击单元格,则不会弹出菜单。

我找不到任何sendActionOn方法或类似的东西。

如果有人可以提供帮助,那就太好了!

nsmenu nstableview nsmenuitem nstablecellview swift

4
推荐指数
1
解决办法
2592
查看次数