【发布时间】:2012-01-13 14:11:15
【问题描述】:
我想自定义一个NSPopUpButton,所以我实现了一个CustomMenuItemView,它现在只有以下代码(用于测试目的):
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSRectFill(dirtyRect);
}
现在,对于我添加到myPopUpButton.menu 中的NSMenu 的每个NSMenuItem,我将视图设置为我的自定义视图:
NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Some title" action:NULL keyEquivalent:@""];
menuItem.view = [[CustomMenuItemView alloc] initWithFrame:NSMakeRect(0, 0, 100, 25)];
当我运行我的程序并打开弹出按钮时,菜单项选择似乎被禁用(即当我点击它时没有任何反应)。
我猜它实际上并没有被禁用;它只是不再响应事件。我是否需要在自定义视图中添加一些事件处理?如果有,怎么做?
【问题讨论】:
-
“具有视图的菜单项不绘制其标题、状态、字体或其他标准绘图属性,而是将绘图职责完全分配给视图。” - developer.apple.com/library/mac/#documentation/Cocoa/Reference/…
标签: objective-c cocoa nsview nsmenuitem nspopupbutton