2014-01-14 36 views
3

最近在我看來,使用設置爲「OS X 10.0行爲」的NSNumberFormatter可能不再流行。 因此,我將附加到幾個NSTextField的數字格式化程序更改爲「10.4默認行爲」和「小數點」樣式。爲什麼10.4樣式的NSNumberFormatter不能自動定位小數點分隔符?

一切工作正常,但數字格式化程序不再自動從美國(。)切換到德語(,)區域設置後自動本地化其小數分隔符。看起來我被卡在了在IB中創建數字格式化程序時的活動小數分隔符。

IB中的「本地化」複選框沒有效果,因爲setLocalizesFormat:被記錄爲只適用於10.0樣式的格式器(讓我想知道爲什麼複選框甚至在那裏)。

我的解決辦法,現在是設置在IB定製NSNumberFormatter子是這樣的:

- (void) awakeFromNib 
{ 
    self.decimalSeparator = [[NSLocale currentLocale] objectForKey:NSLocaleDecimalSeparator]; 
} 

我不能相信這是應該做的正確的方式,爲10.0風格格式化沒有這個問題。

任何想法我失蹤?

問候, ILJA

+0

你嘗試設置在-awakeFromNib的格式化?也許這是一個IB問題。 – catlan

+0

不,因爲我正在處理大約十幾個NSTextFields,而且我不想爲了獲得正確的格式而熱衷於創建網點。所以使用客戶格式化程序看起來很簡單。 – iljawascoding

+0

IBOutletCollection的時間 – catlan

回答

3

我確認你發現在Xcode的界面中的錯誤生成器,它凍結掉在廈門國際銀行創建,它不應當,如果「本地化做的時間分組分隔數'框被選中。請提交RADAR。

下面的代碼工作正常,並確保所有的本地化屬性(小數點,組分隔符等等)將設置在運行時:

self.textFieldCell.formatter = [NSNumberFormatter new]; 
((NSNumberFormatter *)self.textFieldCell.formatter).numberStyle = NSNumberFormatterDecimalStyle; 
+0

感謝您的驗證。將提交雷達。 – iljawascoding

+0

雷達在那裏:http://openradar.appspot.com/radar?id=5571746719596544 – iljawascoding

相關問題