ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MacOS 开发 - NSDatePicker(日期选择)

2019-04-10 20:53:45  阅读:491  来源: 互联网

标签:datePicker picker MacOS theDate 选择 日期 NSDatePicker


使用 NSDatePicker 就可以调出日期选择,结果图如最下。

文章目录


注意事项

  • 建议把这个 picker 作为全局变量,这样就不会每次点击按钮都添加。
  • 使用setAction 监听选中的值;
  • 不管给 picker 设置的 frame 是多大,picker 的显示大小是固定的。
  • 调出的 picker 带有日期和钟表的时间,选择日期 和 拨动钟表盘的 时分秒 针 都会触发 updateDateResult 方法

创建

- (void)pickTime{
    NSDatePicker *datePicker = [[NSDatePicker alloc] initWithFrame:NSMakeRect(0, 0, 300, 300)];
    [datePicker setDatePickerStyle:NSClockAndCalendarDatePickerStyle];
    
    datePicker.wantsLayer = YES;
    datePicker.layer.backgroundColor = [NSColor cyanColor].CGColor;
    
    // 设置日期选择控件的类型为“时钟和日历”。其他类型有如,NSTextField文本框
    
    [datePicker setDateValue: [NSDate date]]; 	// 初始化选中当前日期
   
    [datePicker setTarget:self]; 
    [datePicker setAction:@selector(updateDateResult:)];	// 绑定每次选择日期触发的action
    [self.view addSubview:datePicker];
}

- (void)updateDateResult:(NSDatePicker *)datePicker{
   
    // 拿到当前选择的日期
    NSDate *theDate = [datePicker dateValue];
   
    NSLog(@"日期:%@",theDate);
    
    if (theDate) {
        
        // 把选择的日期格式化成想要的形式
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
        
        NSString *dateString = [formatter stringFromDate:theDate];
        
        NSLog(@"日期:%@",dateString);
        
    }
}


枚举

NSDatePickerStyle

typedef NS_ENUM(NSUInteger, NSDatePickerStyle) {
    NSTextFieldAndStepperDatePickerStyle    = 0,
    NSClockAndCalendarDatePickerStyle       = 1,
    NSTextFieldDatePickerStyle              = 2
};

NSDatePickerStyle


NSDatePickerElementFlags

typedef NS_OPTIONS(NSUInteger, NSDatePickerElementFlags) {
    /* Time Elements */
    NSHourMinuteDatePickerElementFlag       = 0x000c,
    NSHourMinuteSecondDatePickerElementFlag = 0x000e,
    NSTimeZoneDatePickerElementFlag	    = 0x0010,

    /* Date Elements */
    NSYearMonthDatePickerElementFlag	    = 0x00c0,
    NSYearMonthDayDatePickerElementFlag	    = 0x00e0,
    NSEraDatePickerElementFlag		    = 0x0100,
};


效果图

这里写图片描述


参考资料

悲观患者的《mac开发系列28:日期选择功能实现》http://www.jianshu.com/p/6886ed384cc4

标签:datePicker,picker,MacOS,theDate,选择,日期,NSDatePicker
来源: https://blog.csdn.net/lovechris00/article/details/77897368

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有