MacOS 开发 - NSDatePicker(日期选择)

标签: MacOS选择时间 MacOS开发 datePicker
2248人阅读 评论(1) 收藏 举报
分类:

使用 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 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

查看评论

NSDate、NSDateFormatter、NSDatePicker介绍

~~~~我的生活,我的点点滴滴!! #pragma mark  NSDate创建(只举例类方法,实例方法一样) // 返回当前时间(GMT,0时区,格林尼治时间) + (id)date; // 返回以当前时间为基准,然后过了secs秒的时间 + (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)
  • AC_huang
  • AC_huang
  • 2015年04月16日 15:30
  • 1410

NSDatepicker

设置datepicker的显示区间,(最大值和最小值) [datePicker setMinimumDate:[NSDate date]]; // NSDate*maxDate=[NSDate dateWithTimeIntervalSinceNow:365*24*60*60]; 时间计算 NSCalendar *calendar=[NSCal
  • u013020103
  • u013020103
  • 2015年08月08日 16:19
  • 548

MacOS 开发 - NSDatePicker(日期选择)

使用 NSDatePicker 就可以调出日期选择,结果图如最下。注意事项 创建 枚举 NSDatePickerStyle NSDatePickerElementFlags 效果图 参考资料 注意事项...
  • lovechris00
  • lovechris00
  • 2017年09月08日 17:44
  • 2247

UIDatePicker 日期/时间选取器(滚轮)—IOS开发

声明 欢迎转载,但是请尊重作者劳动成果,转载请保留此框内声明,谢谢。 文章出处:/iukey UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关
  • iukey
  • iukey
  • 2012年03月07日 00:58
  • 90771

NSDatePicker的使用(设置日期范围)

设置日期期限的时候下面这个方法用不了(升级成ios7之后)  NSDate *toDate =[[NSDate alloc]initWithString:@"2000-10-10 12:00:00 -0500"]; 用下面的方法替换     NSDateFormatter * formatter = [[NSDateFormatter alloc]init];     [forma
  • u012490014
  • u012490014
  • 2014年05月20日 11:19
  • 1796

MacOS 开发入门

引言 相关书籍 剑指人心的书 Cocoa入门使用Objective-C 视频教程 我的开发笔记CSDN 博客目录 基础控件 DockWindow状态栏目录栏 文件管理等 视图效果 小功能 综合 我的MacOS 开发简书文集 实用Demo 优秀MacOS 开发博客 QQ群 参考资料 引言 用了三年Mac,非常迷恋这个系统。想尝试写些自己的OS X App , 无奈资质...
  • lovechris00
  • lovechris00
  • 2017年05月27日 10:24
  • 5547

macOS 开发入门教程: Part 1

原文:macOS Development for Beginners: Part 1 作者:Sarah Reichelt 译者:kmyhy 你想开发自己的的 macOS App 吗?好消息!苹果让 macOS 开发变得超级简单,这个系列教程会教你如何进行 macOS App。你将学习如何创建您的第一个 macOS App——那怕你完全没有接触过 macOS 开发。在第一部分,你会先学习如
  • kmyhy
  • kmyhy
  • 2017年06月22日 09:01
  • 1942

钱柜娱乐开户开发之日期选择器的使用

baohanqing
  • baohanqing
  • 2013年12月30日 20:37
  • 743
  • MacOS 和iOS 开发细节上的不同(OC)

    此处默认读者都已掌握 iOS 开发,只记录macOS 上的代码。设置背景色 按钮添加点击事件设置背景色 self.imgView.wantsLayer = true; self.imgView.layer.backgroundColor = [NSColor cyanColor].CGColor;按钮添加点击事件没有了addTarget,而是使用 setAction [self.bt
    • lovechris00
    • lovechris00
    • 2017年09月06日 16:36
    • 2416

    MacOS 开发 - NSUserNotification

    添加通知 一般通知 图片相关设置 带有按钮的通知 按钮相关小结 NSUserNotificationActivationType 点击按钮产生目录 可以回复的推送 定时发送 循环发送 设置是否只是锁屏状态可见 设置代理 NSUserNotificationCenterDelegate 移除通知 删除已经显示过的通知已经存在用户的通知列表中的 删除已经在执行的通知比如那些循环递交的通知 deliver
    • lovechris00
    • lovechris00
    • 2017年09月29日 15:32
    • 1015
      钱柜娱乐开户
      个人资料
      专栏达人 持之以恒
      等级:
      访问量: 21万+
      积分: 3535
      排名: 1万+
      最新评论
    关闭