У меня есть NSPopUpButton, значения содержимого которого связаны с NSArray из NSNumbers. NSPopUpButton правильно отображает массив чисел в его всплывающем меню. Однако, когда я изменяю выбранное значение, я получаю сообщение:
HIToolbox: ignoring exception 'Unacceptable type of value for attribute: property = "tempo"; desired type = NSNumber; given type = NSCFString; value = 106.' that raised inside Carbon event dispatch
Очевидно, это происходит потому, что объект, к которому привязано выбранное значение, ожидает NSNumber, а NSPopUpButton присваивает ему NSString. Просматривая другие посты, я думаю, что мне нужен NSNumberFormatter.
Однако я пытался использовать NSNumberFormatter, как через Interface Builder, так и программно, но результат не меняется. Для справки, это код, который я использовал при попытке программной установки форматера NSPopUpButton:
tempoFormatter = [[NSNumberFormatter alloc] init];
[tempoFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[tempoFormatter setFormat:@"### bpm"];
[[tempoButton cell] setFormatter:tempoFormatter];
(tempoButton - это IBOutlet, подключенный к NSPopUpButton)
Мне интересно, если использование NSNumberFormatter - это вообще то, что мне нужно? Если так, что я делаю не так? Я прочитал Руководство по программированию форматирования данных; это кажется очень простым, но я чувствую, что что-то упустил.
Заранее спасибо.