У меня есть 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? Если да, то что я делаю не так? Я прочитал Руководство по программированию форматирования данных; это кажется очень простым, но я чувствую, что что-то упускаю.
Заранее спасибо.
selectedObject
? - person kubi   schedule 10.01.2010