使用 NSPopButton 进行多项选择 mac OS X
Multiple Selection using NSPopButton mac OS X
我正在开发一个行为与 NSPopUpButton 相同的控件,但应该有一个自定义视图作为其 MenuItem.In 自定义视图,我将不得不显示一些文本(标签)和一个 tableView。
我能够按照 Apple 在以下 link ,
中给出的示例代码创建带有自定义视图的 NSPopUpButton
然而,当我将 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视图委托方法。
我正在开发一个行为与 NSPopUpButton 相同的控件,但应该有一个自定义视图作为其 MenuItem.In 自定义视图,我将不得不显示一些文本(标签)和一个 tableView。
我能够按照 Apple 在以下 link ,
中给出的示例代码创建带有自定义视图的 NSPopUpButton然而,当我将 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>];
使用 ,
创建它NSMenu *newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] initWithTitle:@"Custom"];
NSMenuItem *newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:[self.title] action:@selector(someMethod:) keyEquivalent:@""];
将此菜单项添加为菜单项的视图会调用 myCustomView 中的 table视图委托方法。