2014-01-14 2 views
3

최근에 "OS X 10.0 Behavior"로 설정된 NSNumberFormatter를 사용하는 것이 더 이상 유행이 아닐 수도 있습니다. 그래서 여러 NSTextFields에 첨부 된 숫자 포맷터를 "10.4 기본 동작"및 10 진수 스타일로 변경했습니다.10.4 스타일 NSNumberFormatter가 소수점 구분 기호를 자동 지역화하지 않는 이유는 무엇입니까?

숫자 포맷터가 미국 (.)에서 독일어 (,) 로케일로 전환 한 후에 더 이상 자동으로 소수 구분 기호를 지역화하지 않는다는 점을 제외하면 모든 것이 잘 작동합니다. IB에서 숫자 포맷터를 만들 때 활성 소수 구분 기호가 무엇이든 붙어있는 것 같습니다.

IB의 "localize"체크 상자는 예상대로 효과가 없습니다. 왜냐하면 setLocalizesFormat :은 10.0 스타일 작성자에서만 작동하기 때문입니다. (체크 상자가 왜 있는지도 궁금합니다.)

내 해결 방법은 지금과 같은 IB에서 사용자 지정 NSNumberFormatter 서브 클래스를 설정하는 것입니다 : 나는 10.0 스타일의 포맷이 문제가 없었으로, 즉 할 수있는 올바른 방법 믿을 수 없어

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

.

내가 누락 된 아이디어가 있습니까?

감사합니다, Ilja

난 당신이-이 빌더는 '로컬 라이즈 경우 수행하지 않아야 XIB 작성,시 분리 그룹화 수를 얼어 엑스 코드의 인터페이스에서 버그를 발견 확인했습니다
+0

당신이 -awakeFromNib에서 포매터를 설정하려고 했습니까? IB 문제 일 수 있습니다. – catlan

+0

아니요. 약 12 ​​가지 NSTextField를 다루고 있기 때문에 포맷을 올바르게 가져 오기 위해 콘센트를 만들지는 않을 것입니다. 따라서 고객 포맷터를 사용하는 것이 쉬운 방법처럼 보였습니다. – iljawascoding

+0

IBOutletCollection의 시간 – catlan

답변

3

'확인란이 선택됩니다. 레이다 파일을 보내주십시오.

다음 코드는 제대로 작동하고, 실행시 설정 얻을 것이다 (소수점, 그룹 분리 등) 모든 지역화 특성을 보장 :

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

확인해 주셔서 감사합니다. 레이더 파일을 작성합니다. – iljawascoding

+0

레이더가 있습니다. http://openradar.appspot.com/radar?id=5571746719596544 – iljawascoding