单击时,自定义单元格内的NSPopUpButtonCell不会弹出

时间:2009-05-29 20:34:42

标签: cocoa custom-controls nspopupbuttoncell custom-cell

我已经使用NSImageCell,一些NSTextFieldCells和一个NSPopUpButtonCell创建了NSCell的自定义子类。

我正在使用:

初始化弹出单元格
    myPopUpCell = [[NSPopUpButtonCell alloc] init];
    [myPopUpCell setBordered:NO];
    [myPopUpCell setAutoenablesItems:NO];
    [myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];

并在drawInteriorWithFrame:inView:

中绘制

除了在运行我的应用程序时单击弹出单元格时,所有内容似乎都很好用,但单元格不会弹出。关于可能出错的任何建议?

1 个答案:

答案 0 :(得分:5)

drawInteriorWithFrame:inView:中绘制弹出按钮单元格就是这样做的;画它,但没有别的。处理点击事件与绘图无关,因此您将不得不在自定义单元格中执行一些操作来解释鼠标事件,如果它们位于您用于弹出按钮的框架内,则将它们传递给它们按钮单元格。首先,通过在跟踪鼠标(例如–trackMouse:inRect:ofView:untilMouseUp:)下继承NSCell文档中列出的方法,您应该能够找出使按钮单元正常运行所需的内容。

根据您正在做的事情,您实际上可能会发现自己更容易绘制标题字符串,并且只使用NSMenu的+popUpContextMenu:withEvent:forView: