Я создаю пользовательский интерфейс с использованием NSPopUpButton, передавая ему массив строк и выбирая элемент по индексу. Когда это будет показано, по умолчанию используется первый элемент. Может ли кто-нибудь увидеть то, что мне не хватает? DropDownView расширяет NSView.(Objective C) NSPopUpButton не обновляет отображаемое значение
@implementation DropDownView
- (id)initWithFrame: (NSRect)frameRect
values: (NSArray<NSString*>*) vals
current: (NSInteger) currentIndex
{
[super initWithFrame:frameRect];
menu = [[NSPopUpButton alloc]initWithFrame:frameRect pullsDown:NO];
[menu addItemsWithTitles:vals];
[menu setEnabled:true];
// this does not change the currently displayed value
// have tried various combinations of the below
[menu selectItemAtIndex:currentIndex];
// [menu selectItemWithTitle:vals[currentIndex]];
[menu synchronizeTitleAndSelectedItem];
[self addSubview:menu];
[menu bind:@"selectedIndex" toObject:self withKeyPath:@"indexOfSelectedItem" options:nil];
return self;
}
@end
большое спасибо!
вызывает 'addSubview:' сразу после '[[NSPopUpButton alloc] initWithFrame: frameRect pullsDown: NO];' и до 'selectItemAtIndex:' помогло? –
Не должно быть первого утверждения: 'self = [super initWithFrame: frameRect];' следует 'if (self) {'.? – Willeke