gpt4 book ai didi

objective-c - NSMenuItem 中的自定义 View 禁用 NSPopUpButton 选择

转载 作者:行者123 更新时间:2023-12-03 16:16:19 25 4
gpt4 key购买 nike

我想自定义一个 NSPopUpButton,因此我实现了一个 CustomMenuItemView,它现在只有以下代码(用于测试目的):

- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSRectFill(dirtyRect);
}

现在,对于添加到 myPopUpButton.menu 中的 NSMenu 的每个 NSMenuItem,我将 View 设置为我的自定义 View :

NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Some title" action:NULL keyEquivalent:@""];
menuItem.view = [[CustomMenuItemView alloc] initWithFrame:NSMakeRect(0, 0, 100, 25)];

当我运行程序并打开弹出按钮时,菜单项选择似乎被禁用(即,当我单击它时没有任何反应)。

我猜它实际上并没有被禁用;它只是不再响应事件。我需要在自定义 View 中添加一些事件处理吗?如果是这样,怎么办?

最佳答案

我通过将 mouseUp 方法添加到我的 CustomMenuItemView 中解决了该问题:

- (void)mouseUp:(NSEvent*) event
{
NSMenu *menu = self.enclosingMenuItem.menu;
[menu cancelTracking];
[menu performActionForItemAtIndex:[menu indexOfItem:self.enclosingMenuItem]];
}

关于objective-c - NSMenuItem 中的自定义 View 禁用 NSPopUpButton 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com