У меня возникла странная проблема с компонентом NSComboBox. Его «selectIndexAtPath» поведение меняется в зависимости от источника данных:Странная ошибка в NSComboBox: selectItemAtIndex работает неправильно при использовании источника данных
- А «фиксированного» список вызывает пункт, чтобы правильно выбрать и когда я открываю список, нажав на кнопку со стрелочкой справа, он продолжает быть выбран , Однако;
- Использование источника данных заставляет элемент правильно выбирать, но когда я открываю список, нажав на кнопку со стрелкой справа, элемент все еще выбран в течение 1/10 секунды, но затем отменяется.
Некоторый код для иллюстрации:
@interface AppDelegate()
@property (weak) IBOutlet NSComboBox *combobox;
@property (strong, nonatomic) NSArray *temp;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
self.temp = @[@"Item", @"Item2", @"Item3", @"Item4", @"Item5"];
/* THIS DOES WORK */
self.combobox.usesDataSource = NO;
[self.combobox addItemsWithObjectValues:self.temp];
/* HOWEVER, THIS DOES NOT WORK */
self.combobox.usesDataSource = YES;
self.combobox.dataSource = self;
[self.combobox selectItemAtIndex:2];
}
#pragma mark - NSComboBoxDataSource methods
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox
{
return self.temp.count;
}
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index
{
return self.temp[index];
}
Кто-нибудь знает, что причины этого? Пытаюсь уже несколько дней ... спасибо!
Это реализовать протокол NSComboBoxDataSource, но в файле заголовка. Также следующий код: [self.combobox selectItemAtIndex: 2]; [self.combobox setObjectValue: [self comboBox: self.combobox objectValueForItemAtIndex: [self.combobox indexOfSelectedItem]]]; Выполняет то же самое (неправильное). Спасибо за ваш комментарий, но это мне не помогло. –
Не видел в заголовке и предположил, что вы не реализовали. –
trueinViso