0

在我的 Cocoa 应用程序中,在一个视图中,我通过 Interface builder 添加了一个 NSPopupButton 并将其与源文件相应地链接,现在在代码中,我正在动态创建菜单并使用 NSPopupbutton 添加菜单,这是我在 WindowDidLoad 中完成的,请参考下面的代码

 NSString *pThemeName;
 for(;index<count;index++)
 {
  pThemeName = [pThemeArray objectAtIndex:index];

  /* If its valid them go ahead and add that into the 
     list 

   */
  if([CommFileManager IsValidThemeName:pThemeName]){
   menuItem = [[NSMenuItem alloc] initWithTitle:pThemeName action:@selector(selectThemeName) keyEquivalent:@""];
   [menuItem setTarget:self];
   [pPopUpmenu addItem:menuItem];
   [menuItem setTag:index];
   [menuItem release];
  }
 }
 [pPopupButton setTarget:self];
 [pPopupButton setMenu:pPopUpmenu];
 [pPopupButton selectItem:[pPopUpmenu itemAtIndex:5]];
 [pPopUpmenu release];

当我运行应用程序时,最初按钮是启用的,但是当我单击箭头时,包括菜单和按钮被禁用

请告诉我我做错了什么。

4

1 回答 1

0

您需要启用 NSPopUpButton 的操作。目标是可选的(因为 nil 表示第一响应者)。

您不需要为菜单项设置目标/操作,因为弹出窗口可以告诉您在针对目标调用其操作时选择了哪个项目。

于 2011-01-14T11:20:00.063 回答