我已经使用NSImageCell,一些NSTextFieldCells和一个NSPopUpButtonCell创建了NSCell的自定义子类。
我正在使用:
初始化弹出单元格 myPopUpCell = [[NSPopUpButtonCell alloc] init];
[myPopUpCell setBordered:NO];
[myPopUpCell setAutoenablesItems:NO];
[myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];
并在drawInteriorWithFrame:inView:
除了在运行我的应用程序时单击弹出单元格时,所有内容似乎都很好用,但单元格不会弹出。关于可能出错的任何建议?
答案 0 :(得分:5)
在drawInteriorWithFrame:inView:
中绘制弹出按钮单元格就是这样做的;画它,但没有别的。处理点击事件与绘图无关,因此您将不得不在自定义单元格中执行一些操作来解释鼠标事件,如果它们位于您用于弹出按钮的框架内,则将它们传递给它们按钮单元格。首先,通过在跟踪鼠标(例如–trackMouse:inRect:ofView:untilMouseUp:
)下继承NSCell文档中列出的方法,您应该能够找出使按钮单元正常运行所需的内容。
根据您正在做的事情,您实际上可能会发现自己更容易绘制标题字符串,并且只使用NSMenu的+popUpContextMenu:withEvent:forView:
。