使用 NSPopButton 进行多项选择 mac OS X

Multiple Selection using NSPopButton mac OS X

我正在开发一个行为与 NSPopUpButton 相同的控件,但应该有一个自定义视图作为其 MenuItem.In 自定义视图,我将不得不显示一些文本(标签)和一个 tableView。

我能够按照 Apple 在以下 link ,

中给出的示例代码创建带有自定义视图的 NSPopUpButton

https://developer.apple.com/library/mac/samplecode/MenuItemView/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004136

然而,当我将 tableView 绑定到数组控制器时,tableView 始终是 empty.When 我尝试打印 ArrayController 的 arrangedObjects,结果是 expected.Also 自定义视图中的标签是加载罚款。 问题似乎只发生在 tableView 上。

关于此的任何想法都会有所帮助。

谢谢。

通过分配 it.In Apple 文档中给出的 POC 创建 NSMenuItem 来修复此问题,菜单项由以下代码创建,

viewCopyData = [NSArchiver archivedDataWithRootObject:<myCustomView>];
viewCopy = [NSUnarchiver unarchiveObjectWithData:viewCopyData];
menuItem = [menu itemAtIndex:1];
[menuItem setView:viewCopy];
[menuItem setTarget:self];

当 myCustomView 具有 table 视图时,使用 viewCopyData = [NSArchiver archivedDataWithRootObject:<myCustomView>];

创建菜单项时,不会调用 table 视图的委托方法

使用 ,

创建它

NSMenu *newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] initWithTitle:@"Custom"]; NSMenuItem *newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:[self.title] action:@selector(someMethod:) keyEquivalent:@""];

将此菜单项添加为菜单项的视图会调用 myCustomView 中的 table视图委托方法。