0

我在这里找到了一个 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)
}
}

有人能帮我吗?

4

2 回答 2

0

您不能将 datePicker.view 值设置为输入视图吗

于 2015-07-29T12:58:16.223 回答
0

我的建议是

1以编程方式创建容器视图,使用视图控制器填充容器,然后尝试将其添加为键盘的 inputView。

我怀疑这会奏效,但尝试肯定不会有坏处。

2也许重新考虑您的设计(如果这是您的电话)并使用包含您的日期选择器的弹出视图代替。

无论哪种方式,让我知道它是如何工作的。

于 2015-07-29T12:29:52.200 回答