我只需在表单中添加一个NSDatePicker,设置样式图形,并设置如下操作:
[datePicker setAction:@selector(datePickSelected:)];
在该方法中,它只打印出所选日期。
-(void)datePickSelected:(id)sender
{
NSLog(@"%@",[datePicker dateValue]);
}
它可以工作,但是当您单击此日期选择器中的日期时会运行两次。这是为什么?
2011-05-25 15:17:09.382 xxx[6609:a0f] 2011-05-13 15:17:04 +0800
2011-05-25 15:17:09.677 xxx[6609:a0f] 2011-05-13 15:17:04 +0800
答案 0 :(得分:3)
这样做是为了解决这个问题:
- (void) awakeFromNib {
[datePickerControl sendActionOn:NSLeftMouseDown];
}
答案 1 :(得分:2)
以下是NSDatePicker
内NSViewController
的 Swift 4 解决方案:
class DatePickerVC: NSViewController{
@IBOutlet weak var datePicker: NSDatePicker!
var date:Date!
override func viewDidLoad() {
super.viewDidLoad()
self.datePicker.target = self
self.datePicker.action = #selector(dateSelected)
let action = NSEvent.EventTypeMask.mouseExited
self.datePicker.sendAction(on: action)
}
@objc func dateSelected(){
print(datePicker.dateValue)
}
}