1

このコードを使用して、ポップアップボタンをに追加していますNSView:

if (popupButton) [popupButton release];
popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, SHEET_WIDTH/2, 32) pullsDown:true];
NSMenu *menu = [[NSMenu alloc] init];
for (NSString *title in anArray)
    [menu addItemWithTitle:title action:NULL keyEquivalent:@""];
[popupButton setMenu:menu];
[self addView:popupButton aligned:KOAlignmentCenter];

アプリを起動すると、ボタンに選択肢がありません。ユーザーがそれをクリックして項目の 1 つを選択すると、ボタンは空のままになります。たとえば、3 つの選択肢 (item1、item2、item3) があり、ユーザーが 2 番目の選択肢をクリックすると、「item2」が表示される代わりに何も表示されません。

空の選択

4

1 に答える 1

4

あなたのコードを試したとき、anArray の最初の項目が表示されたので、何も表示されない理由がわかりません。ただし、リストから項目を選択しても、表示される内容は変わりません。これは、プルダウン タイプのボタンで想定される動作です。Appleのドキュメントから:

通常、プルダウン リストは、サブメニューがその親アイテムの隣に表示されるのと同じように、ポップアップ ボタンの隣に表示されます。ポップアップ リストとは異なり、プルダウン リストを表示するポップアップ ボタンのタイトルは、現在選択されている項目に基づいていないため、セルの setTitle: メソッドを使用して変更しない限り、固定されたままになります。

また、どちらのメニュー ステートメントも必要ありません。ループ内で NSPopupButton メソッドの addItemWithTitle: を使用するだけです。したがって、メニュー コマンドを使用せずに試してみて、最初に何も表示されない場合は明示的に setTitle: を使用してください。または、プルダウンの代わりにポップアップに変更することもできます。そうすれば、タイトルの設定に問題はありません。

これは私がテストしたことです:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

    NSArray *anArray = @[@"One",@"Two",@"Three",@"Four"];
    _popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(100, 200, 200, 32) pullsDown:TRUE];
    for (NSString *title in anArray)
        [_popupButton addItemWithTitle:title];
    [self.window.contentView addSubview:_popupButton];
}
于 2012-09-18T16:11:31.687 に答える