首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅在NSDatePicker中显示年份

如何仅在NSDatePicker中显示年份
EN

Stack Overflow用户
提问于 2016-12-21 00:07:39
回答 3查看 582关注 0票数 1

我只想在NSDatePicker中显示年份组件。

我尝试过将set/add NSDateFormatter添加到NSDatePicker中,但没有成功。(通过在nib中将NSDateFormatter拖到NSDatePicker )

在不对NSDatePicker或NSTextField进行子类分类的情况下,有什么方法可以实现这一点吗?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-16 16:00:09

-[NSDatePicker setDatePickerElements:]再也不能被骗到只显示年份了。

可以通过配置一年月选择器和子类NSDatePicker来防止它创建月份和分隔符字段,从而获得仅为一年的NSDatePickerCell:

代码语言:javascript
复制
- (void)_addSubfieldForElement:(int)arg1 withDateFormat:(id)arg2 referenceStrings:(id)arg3
{
    if ((arg1 == 6) || (arg1 == 100)) {
        return;
    }

    [super _addSubfieldForElement:arg1 withDateFormat:arg2 referenceStrings:arg3]; // Private API
}

请向苹果提交错误报告,请求只使用一年版本的NSDatePicker。我还要求了一个为期一周的挑选者。

票数 1
EN

Stack Overflow用户

发布于 2016-12-26 03:46:26

在深入研究了苹果的文档之后,我找到了解决方案,并想在这里发布,以防它对其他人有用。

不需要子类NSDatePicker,有一个方法- (void)setDatePickerElements:(NSDatePickerElementFlags)elementFlags指定日期选择器将显示哪个元素。elementFlags是一个常量,由枚举定义为:

枚举{ NSHourMinuteDatePickerElementFlag = 0x000c,NSHourMinuteSecondDatePickerElementFlag = 0x000e,NSTimeZoneDatePickerElementFlag = 0x0010,NSYearMonthDatePickerElementFlag = 0x00c0,NSYearMonthDayDatePickerElementFlag = 0x00e0,NSEraDatePickerElementFlag = 0x0100,};

当我看到这些常量时,我发现它只是一个小掩码。位位置和相应的日历元素如下:

15-9位:未知。也许还没用过。

8位:时代。(如果有4位数的年份格式,则不会显示任何内容。)

7位:年份。

6位:月。

5位:一天。

4位:时区。

3位:小时。

2位:分钟。

1位:第二位。

0位:未知。可能是毫秒,或者是未使用的。

因此,下面的行将给我一年的日期选择器:

代码语言:javascript
复制
[_yearOnlyDatePicker setDatePickerElements:0x0080];

_yearOnlyPicker是NSDatePicker的一个实例。

结果如下:

yearOnlyDatePicker在Interface中的样子:

运行该应用程序时,yearOnlyDatePicker是什么样子的:

票数 2
EN

Stack Overflow用户

发布于 2016-12-21 02:45:20

不需要使用NSDatePicker是很容易的。您所要做的就是创建一个您想要的年份范围,并将其用作普通选择器的datasource

代码语言:javascript
复制
for (int i=1900; i<=currentYear; i++) {
  [_yourDataSourceArr addObject:[NSString stringWithFormat:@"%d",i]];
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41253203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档