2009-05-29 58 views
1

我用NSImageCell,一些NSTextFieldCells和NSPopUpButtonCell创建了NSCell的定制子类。NSPopUpButtonCell在定制单元格内不点击时弹出

我初始化使用弹出电池:

myPopUpCell = [[NSPopUpButtonCell alloc] init]; 
    [myPopUpCell setBordered:NO]; 
    [myPopUpCell setAutoenablesItems:NO]; 
    [myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]]; 

而且在drawInteriorWithFrame:inView:

绘制的一切似乎只是在弹出的细胞,当点击运行时我的应用程序的工作的伟大,单元格不会弹出。任何有关可能出错的建议?

+0

可能只是一个剪切和粘贴错误,但arrayWithObjects列表需要终止。例如[myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@“Item1”,@“Item2”,@“Item3”,nil]]; – Abizern 2009-05-29 22:43:20

回答

5

drawInteriorWithFrame:inView:中绘制弹出式按钮单元格即可做到这一点;画出来,但没有别的。处理点击事件与绘图无关,因此您必须在自定义单元中执行一些工作来解释鼠标事件,并且如果它们位于您用于弹出按钮的框架内部,请将它们传递给到按钮单元格。通过在跟踪鼠标的情况下对NSCell文档中列出的方法进行子类化,例如–trackMouse:inRect:ofView:untilMouseUp:,并且您应该能够找出使按钮单元正常工作所需的内容。

根据你在做什么,你可能会发现自己更容易绘制标题字符串,只是使用NSMenu的+popUpContextMenu:withEvent:forView:

相关问题