Заставить NSTextField действовать как «микроволновый таймер», хранить как NSNumber - PullRequest
1 голос
/ 27 марта 2009

То, что я пытаюсь сделать, состоит из двух частей:

  1. Я хочу, чтобы мой NSTextField действовал как «микроволновый таймер» и обновлялся по мере ввода символов. Таким образом, поле будет по умолчанию «00:00» (минуты, секунды). Когда нажата 1, поле будет выглядеть как «00:01». Затем нажимается 4 и «00:14». Нажимается 2 и «01:42».
  2. Я хочу сохранить это как NSNumber на контроллере как количество секунд в таймере. Поэтому, если в текстовом поле отображается «10:00», значение свойства будет равно 600.

Похоже, NSFormatter - это хорошее место для поиска, но мои попытки были полны неудач. Любая помощь приветствуется. Спасибо!

1 Ответ

0 голосов
/ 28 марта 2009

а) Разделите значение вашего свойства таймера на минуты и секунды. Затем используйте установку NSFormatter с двумя ведущими нулями, чтобы создать строки из двух чисел (см .: Как указать десятичные знаки при форматировании объектов NSNumber? ). Затем используйте stringWithFormat: , чтобы поместить две строки по обе стороны от двоеточия.

б) Или просто разделите каждую цифру из четырех (в вашем примере) чисел и поместите это число в строку с двоеточием в правильном месте. (сначала десятки минут, затем минуты, затем десятки секунд, затем секунды)

Любой из вышеперечисленных может быть в пользовательском подклассе NSFormatter , установленном в NSTextField, или в методе в контроллере представления, вызываемом наблюдателем (используя KVO ) вашего свойства timer .

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