我已经创建了一个带有NSImageCell、一些NSTextFieldCells和NSPopUpButtonCell的NSCell的自定义子类。
我使用以下命令初始化弹出单元格:
myPopUpCell = [[NSPopUpButtonCell alloc] init];
[myPopUpCell setBordered:NO];
[myPopUpCell setAutoenablesItems:NO];
[myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];并在drawInteriorWithFrame:inView:中绘制它
一切似乎都很好,除了在运行我的应用程序时单击弹出单元格时,单元格没有弹出。对可能的错误有什么建议吗?
发布于 2009-05-29 22:22:01
在drawInteriorWithFrame:inView:中绘制弹出按钮单元格就可以做到这一点;只绘制它,而不绘制其他内容。处理单击事件与绘图无关,因此您必须在自定义单元格中做一些工作来解释鼠标事件,如果它们位于用于弹出按钮的框架内,则将它们传递给按钮单元格。首先,对跟踪鼠标下的NSCell文档中列出的方法(如–trackMouse:inRect:ofView:untilMouseUp: )进行子类化,您应该能够确定需要什么才能使按钮单元格正常工作。
根据您所做的工作,您可能会发现自己绘制标题字符串更容易,只需使用NSMenu的+popUpContextMenu:withEvent:forView:即可。
https://stackoverflow.com/questions/928014
复制相似问题