我在这里找到了一个 calendarDatePicker ,我想在用户触摸 textField 时显示该自定义选择器。
在我之前的项目中,我刚刚创建了一个默认的 pickerView,然后将其设置为 textField 的 inputView 并且它可以工作。
在这里,我尝试再次执行此操作,但THCalendarDatePicker是 viewController,而不是 inputView。
这是代码:
class ViewController: UIViewController, THDatePickerDelegate {
@IBOutlet weak var textField: UITextField!
var datePicker:THDatePickerViewController?
var curDate: NSDate?
override func viewDidLoad() {
super.viewDidLoad()
self.curDate = NSDate()
datePicker = THDatePickerViewController.datePicker()
datePicker!.delegate = self
datePicker!.setAllowClearDate(false)
datePicker!.setClearAsToday(true)
datePicker!.setAutoCloseOnSelectDate(false)
datePicker!.setAllowSelectionOfSelectedDate(true)
datePicker!.setDisableHistorySelection(false)
datePicker!.setDisableFutureSelection(false)
//datePicker!.autoCloseCancelDelay = 5.0
datePicker!.selectedBackgroundColor = UIColor.blackColor()
datePicker!.currentDateColor = UIColor.yellowColor()
datePicker!.currentDateColorSelected = UIColor.yellowColor()
}
@IBAction func touchInInput(sender: AnyObject) {
datePicker!.date = curDate
datePicker!.setDateHasItemsCallback({(date:NSDate!) -> Bool in
let tmp = (arc4random() % 30) + 1
return tmp % 5 == 0
})
presentSemiViewController(datePicker!, withOptions: [
KNSemiModalOptionKeys.pushParentBack : NSNumber(bool: true),
KNSemiModalOptionKeys.animationDuration : NSNumber(float: 0.5),
KNSemiModalOptionKeys.shadowOpacity : NSNumber(float: 0.3)
])
sender.inputView == ??? // what I should code here?
}
func datePickerCancelPressed(datePicker: THDatePickerViewController!) {
self.dismissSemiModalView()
}
func datePickerDonePressed(datePicker: THDatePickerViewController!) {
self.dismissSemiModalView()
}
func datePicker(datePicker: THDatePickerViewController!, selectedDate: NSDate!) {
println(selectedDate)
}
}
有人能帮我吗?