Можно ли использовать NSFormatter с NSPopUpButton? - PullRequest
0 голосов
/ 11 января 2010

Этот вопрос похож на этот: Как использовать подкласс NSFormatter с NSPopUpButton

Как уже упоминалось в этом вопросе, кажется, что «форматер», используемый ячейкой NSPopUpButton, похоже, не работает. Мне интересно, ожидается ли это, или есть ли цель настроить форматер NSPopUpButton.

Прямо сейчас у меня есть NSPopUpButton, чьи «Объекты содержимого» связаны с расположеныObjects NSArrayController, чей «Массив содержимого» является NSArray из NSNumbers. Установка форматера ячейки NSPopUpButton в простой NSNumberFormatter, который форматирует NSNumbers в формате валюты, не работает; Во всплывающем меню отображаются номера в неотформатированном виде.

Мне интересно, как я могу отформатировать строки, отображаемые во всплывающем меню кнопки NSPopUpButton? Я чувствую, что это должно быть довольно просто; необходимость использовать преобразователь значения или специальное значение для пути отображения кажется излишним и должна быть проще.

Заранее спасибо.

1 Ответ

0 голосов
/ 11 января 2010

Если ячейка не поддерживает форматировщик, вы можете предоставить альтернативное свойство, например -formattedCost, а не -cost. Ничего особенного не требуется, так как пункты меню всплывающих кнопок не редактируются пользователем.

Ваше свойство -formattedCost будет использовать общий экземпляр NSNumberFormatter и будет возвращать правильно отформатированную строку -cost.

- (NSString *)formattedCost
{
    return [mySharedCurrencyFormatter stringFromNumber:[self cost]];
}

Свойство formattedCost - это то, к чему вы привязываетесь для отображения. Дополнительные предостережения: вам нужно зарегистрировать ключ "formattedCost" как зависимый от ключа "cost". Таким образом, при изменении стоимости ваше всплывающее окно будет обновляться (поскольку это также вызывает изменение «formattedCost»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...