2010-01-26 3 views
17

코드/인터페이스 빌더에서 UIDatePicker의 AM/PM을 비활성화하거나 숨기는 방법?UIDatePicker에서 AM/PM을 비활성화하는 방법

UIDatePicker에 시간 선택기 모드를 24 시간 갖고 싶습니다. 도와주세요

+0

여기에서 답변 한 것처럼 http://stackoverflow.com/questions/1151335/can-i-localize-a-uidatepicker/2265984#2265984 및 여기 http://stackoverflow.com/questions/2894161/uidatepicker-problem-localizing/2918507 # 2918507, 선택기 표시는 언어 설정이 아닌 국가 별 설정에 따라 다릅니다. 귀하의 예제에서 언어 로케일 만 변경하고 있습니다. –

+0

iOS 6의 경우 내 대답을 볼 수 있습니다. http://stackoverflow.com/a/12975871/1376032 – FunkyKat

답변

6

AFAIK (SDK 한도 내에서) AFAIK 할 수 없습니다. 사용자가 24 시간 형식을 사용하도록 선택하면 AP/PM이 사라집니다. 이것이 중요 할 경우 자신의 UIPickerView을 만드십시오.

10

설명서에 따르면 UIDatePicker의 locale 속성을 24 시간 형식을 사용하는 로캘로 설정할 수 있어야합니다.

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"da_DK"]; 
[datePicker setLocale:locale]; 
[locale release]; 

아쉽게도 시뮬레이터와 장치 모두 사용자의 국제 환경 설정에 따라 날짜 선택 도구를 계속 레이아웃하는 버그가 있습니다.

24 시간 피커를 표시하려면 당첨 날짜 선택 도구를 굴려야합니다.

이 피커에서 AM/PM을 제거
+1

en_GB를 시도했으며 dk_DK 로켈이 시뮬레이터 나 장치에서 작동하지 않습니다. 하지만 iphone 설정에서 24 시간 형식을 설정하면 UIDatepicker가 24 시간을 표시하는 것으로 나타났습니다. 내 자신의 UIPickerView를 만들어야합니까, 아니면 이것을 달성 할 수있는 방법이 있습니까? –

+0

나는 장치 나 시뮬레이터가 작동하지 않는 원래의 대답에 오류가 있었다. Apple에 버그 신고가 접수되었습니다. 지금 나는 당신이 제안한대로 할 것입니다. –

+0

이것은 버그가 아니며 언어를 변경하는 것이지만 실제로는 국가 설정에 따라 다릅니다. –

-3

...

UIDatePicker *myDatePicker = [[UIDatePicker alloc]init]; 
[myDatePicker setDatePickerMode:UIDatePickerModeDate]; 
+4

그것은 또한 시간을 제거합니다! 나는 이것이 필요한 것이라고 생각하지 않는다. – jrturton

1

은 AM/PM은 아이폰의 로케일 설정과 연결되어 있습니다. 피커의 로케일을 ro_RO와 같은 AM/PM이없는 무언가로 강제 설정할 수 있습니다. 또는 en_US로 갈 수있는 AM/PM으로 항상 원할 경우를 대비해서 선택하십시오. 설정에 대해서는이 당신이 영어 (미국)와 같은 로케일에 따라 또는 코드에 의해 오른쪽에 디자이너에서 그것을 할 수

[timePicker setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];

0

나는이 오래 알고 ...하지만 최근에이를 조사하고 발견 이 몇 가지 테스트를 통해 :

[datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]]; 

이 기본적으로 나에게 알려주는 "언어"영어 (이하 "EN"부분)와 "시간 스타일"입니다 (기본 24 시간 인) 프랑스어 (이하 "FR"부분). 시행 착오를 통해이 둘을 결합하여 원하는대로 작동한다는 것을 알았습니다. 24 시간 내에 선택할 수있는 "날짜 및 시간"선택기가 있습니다 (선택기에서 AM/PM 섹션 없음, 영어 본문).

여기 날짜를 잡아 때이 문제는, 로케일이 잘못 될 수있다 ->

- (void)changeDate:(UIDatePicker *)sender { 

그래서 날짜 변경 선택 부분에 로케일을 해결하기 위해이 작업을 수행 :

[sender setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]]; 
관련 문제