0

私の Cocoa アプリケーションでは、1 つのビューで、Interface ビルダーを介して 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 に答える