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

Law*_*ton 1 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"]];
Run Code Online (Sandbox Code Playgroud)

并将其吸引进去 drawInteriorWithFrame:inView:

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

Mar*_*eau 5

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

根据你正在做的事情,你可能会发现自己更容易画出标题字符串,并且只使用NSMenu +popUpContextMenu:withEvent:forView:.