Отключить региональные настройки для NSTextField - PullRequest
2 голосов
/ 20 июня 2011

У меня проблема с NSTextField в Какао. Есть ли способ удалить региональные настройки из NSTextField

Я хочу, чтобы пользователь вводил только такие значения, как 0,6, 0,7, но если пользователь не из США, он вынужден вводить как 0,6, 0,7

Так что, если пользователь не является пользователем США, если он введет 0,7 [textField floatValue] вернет 0 и если пользователь США и он вводит 0,7 [textField floatValue] вернет 0

Хорошо, допустим, я могу принять это, но затем я хочу отформатировать значение и отобразить его только с 3 десятичными знаками

это будет работать для США, но не будет работать не для США, даже если значение является правильным с плавающей точкой (например, 0,3) [textField setStringValue: [NSString stringWithFormat: @ "%. 3f", значение]];

текстовое поле имеет тип NSTextField

Спасибо!

1 Ответ

2 голосов
/ 21 июня 2011

Вы должны использовать NSNumberFormatter вместо +[NSString stringWithFormat:]. Фактически, использование NSNumberFormatter позволяет:

  • Настройка минимального и максимального количества цифр после десятичного разделителя;
  • Сконфигурируйте строку, используемую в качестве десятичного разделителя, на случай, если вы хотите переопределить языковой стандарт пользователя;
  • Настройте поведение округления, если это важно;

среди других функций.

Если ваш NSTextField находится в файле пера, Interface Builder / Xcode 4 позволяет связать выход formatter с экземпляром NSNumberFormatter. Вы также можете сделать это программно, отправив -setFormatter: в текстовое поле.

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