我已经创建的NSCell的定制子类与NSImageCell,一些NSTextFieldCells和NSPopUpButtonCell。

我使用初始化弹出细胞:

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

和在drawInteriorWithFrame:inView:绘制它

一切似乎除了以弹出电池点击运行时我的应用程序时,细胞不弹出来工作的伟大。什么可能是错的任何建议?

有帮助吗?

解决方案

图纸中drawInteriorWithFrame:inView:弹出按钮细胞是要做到这一点;画出来,但没有别的。处理单击事件无关的绘图,所以你将不得不做你的自定义单元格的一些工作来解释鼠标事件,如果他们是你使用的弹出按钮的框架内,在将它们传递到钮扣电池。通过继承下跟踪鼠标在文档的NSCell列出的方法,如–trackMouse:inRect:ofView:untilMouseUp:开始,你应该能够找出正确使按钮细胞行为所需的内容。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top