0

ここでcalendarDatePicker を見つけました。ユーザーが textField に触れたときにそのカスタム ピッカーを表示したいと思います。

私の以前のプロジェクトでは、デフォルトの pickerView を作成し、それを textField の inputView に設定したところ、機能しました。

そして、ここでもう一度やり直そうとしましたが、THCalendarDatePickerは、inputView ではなく、viewController です。

コードは次のとおりです。

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

私の提案は

1プログラムでコンテナー ビューを作成し、コンテナーにビュー コントローラーを設定してから、それをキーボードの inputView として追加してみてください。

うまくいくかどうかは疑問ですが、試してみても害はありません。

2おそらくデザインを再考し (それがあなたの呼び出しである場合)、代わりに日付ピッカーを含むポップ オーバー ビューを使用します。

いずれにせよ、それがどのように機能するかを教えてください。

于 2015-07-29T12:29:52.200 に答える
0

入力ビューとしてdatePicker.view値を設定できますか

于 2015-07-29T12:58:16.223 に答える