Я также заметил эту ошибку и по-другому ее исправил. Правильное значение может быть получено, когда мы читаем значение в следующем цикле основного цикла выполнения после вызова метода comboBoxSelectionDidChange, как показано ниже
- (void)comboBoxSelectionDidChange:(NSNotification *)notification{
[self performSelector:@selector(readComboValue:) withObject:[notification object] afterDelay:0];
}
- (void)readComboValue:(id)object
{
NSString *comboValue = [(NSComboBox *)object stringValue];
NSLog(@"%@", comboValue);
}
дает желаемый результат