NSDatePicker에만 연도 구성 요소를 표시하려고합니다.NSDatePicker에서 연도 만 표시하는 방법
NSDateFormatter를 NSDatePatterer에 추가/설정하려고했지만 행운이 없었습니다. (NSDateFormatter를 펜촉의 NSDatePicker로 드래그하여)
NSDatePicker 또는 NSTextField를 서브 클래 싱하지 않고도이 작업을 수행 할 수있는 방법이 있습니까? 고맙습니다!
NSDatePicker에만 연도 구성 요소를 표시하려고합니다.NSDatePicker에서 연도 만 표시하는 방법
NSDateFormatter를 NSDatePatterer에 추가/설정하려고했지만 행운이 없었습니다. (NSDateFormatter를 펜촉의 NSDatePicker로 드래그하여)
NSDatePicker 또는 NSTextField를 서브 클래 싱하지 않고도이 작업을 수행 할 수있는 방법이 있습니까? 고맙습니다!
Apple의 문서로 다이빙을 마친 후 해결책을 찾았으며 여기에 게시하여 다른 사람에게 유용합니다.
NSDatePicker
의 하위 클래스는 필요 없으며 날짜 선택 도구가 표시 할 요소를 지정하는 - (void)setDatePickerElements:(NSDatePickerElementFlags)elementFlags
메서드가 있습니다. 그 상수를 볼 때
enum {
NSHourMinuteDatePickerElementFlag = 0x000c,
NSHourMinuteSecondDatePickerElementFlag = 0x000e,
NSTimeZoneDatePickerElementFlag = 0x0010,
NSYearMonthDatePickerElementFlag = 0x00c0,
NSYearMonthDayDatePickerElementFlag = 0x00e0,
NSEraDatePickerElementFlag = 0x0100,
};
typedef NSUInteger NSDatePickerElementFlags;
, 나는 그냥 비트 마스크입니다 찾을 : elementFlags는 같은 열거에 의해 정의 된 상수이다. 비트 위치 및 해당 달력 요소는 다음과 같습니다.15 - 9 비트 : 알 수 없음. 아마도 사용되지 않을 수 있습니다.
8 비트 : 시대. (4 자리 연도 형식 인 경우 아무 것도 표시되지 않습니다.)
7 비트 : 연도.
6 비트 : 월.
5 비트 : 일.
4 비트 : 표준 시간대.
3 비트 : 시간.
2 비트 : 분.
1 비트 : 초.
0 비트 : 알 수 없음. 밀리 세컨드이거나 미사용 일 수도 있습니다.
[_yearOnlyDatePicker setDatePickerElements:0x0080];
_yearOnlyPicker
이 NSDatePicker의 인스턴스 :그래서, 다음 줄은 나에게 년 만 날짜 선택을 줄 것이다.
어떻게
yearOnlyDatePicker
인터페이스 빌더에서 다음과 같습니다 : 여기는 결과
OS X 10.11 이상에서는 작동하지 않습니다. OS X 10.10은 테스트되지 않았습니다. 그러나 OS X 10.9 이전 버전에서는 작동합니다. –
NSDatePicker를 사용하지 않아도됩니다. 당신이해야 할 일은 당신이 원하는 범위의 연도를 만들어 일반 픽커를 위해 datasource
으로 사용하는 것입니다.
for (int i=1900; i<=currentYear; i++) {
[_yourDataSourceArr addObject:[NSString stringWithFormat:@"%d",i]];
}
경우 :
yearOnlyDatePicker
이 응용 프로그램을 실행할 때처럼 보이는 방법그것은 단지 1 년의 칼럼 일 뿐이다. 어떤 의미에서 이것은 "날짜"에 관한 것인가? 정수 목록에서 정수를 선택하는 것입니다. 거기에 날짜 선택기가 필요하지 않습니다. – matt
이 [Show year in NSDatePicker] (http://stackoverflow.com/questions/12017791/uidatepicker-to-show-year-only) 링크는 도움이 될 것입니다. –