Witam,
Tworzac aplikacje napotkalem problem ktorego nie potrafie na razie sam ogarnac. Mianowicie..
Opis:
W mojej aplikacji uzytkownik podaje pewna wartosc liczbowa w polu tekstowym, moze to byc wartosc zmiennoprzecinkowa, ktora zapisuje jako NSNumber. Jako ze jest to wartosc uzywana do obliczen zrobilem zabezpieczenie przed wpisaniem wartosci "nieliczbowej" korzystajac z NSNumberFormatter i dalej setNumberStyle:NSNumberFormatterDecimalStyle. Z tego co doczytalem formatter bierze pod uwage ustawienia regionalne, czyli w naszym wypadku kropka jako znak dziesietny jest odrzucana, akceptowany jest przecinek, i tak tez to dziala. Jesli user wpisze nieliczbowa wartosc, albo uzyje kropki, aplikacja wyswietla odpowiedni komunikat, jesli wartosc jest prawidlowa to jest przepisywana do zmiennej.
Problem:
Na innym ekranie odczytuje ta zmienna i wpisuje w labelke. I tu pojawia sie klopot, mianowicie w labelce zmienna ma kropke jako znak dziesietny, pomimo tego ze ekran wczesniej user musial uzyc przecinka. Wogole wszystkie wartosci zmiennoprzecinkowe wyswietlane sa z kropka (a jest ich troche), co moze potencjalnego usera zdziwic, bo on akurat musi uzywac przecinka wpisujac swoje wartosci.
Pytanie:
Taka sytuacja w aplikacji to jednak pewien brak konsekwencji, i chcialbym to naprawic. Skoro user ze wzgledu na ustawienia regionalne musi uzywac przecinka, chcialbym aby rowniez wyswietlane wartosci mialy przecinek zamiast kropki. Oczywiscie w innym regionie gdzie znakiem dziesietnym jest kropka, wszystko powinno byc wyswietlane z kropka. Pytanie brzmi - jak zmusic zmienne aby przechowywane w nich wartosci wyswietlane byly w labelce ze znakiem dziesietnym zgodnym z ustawieniami regionalnymi ?
Grzesiek




LinkBack URL
About LinkBacks
