textField предотвращает отображение события клавиатуры

Я нашел календарь DatePicker здесь и хочу показать этот настраиваемый выбор, когда пользователь коснулся текстового поля.

В моем предыдущем проекте я только что создал pickerView по умолчанию, а затем установил его в inputView textField, и он работает.

И здесь я попытался сделать это снова, но 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)
}
}

Кто-нибудь может мне помочь?


person mkz    schedule 29.07.2015    source источник


Ответы (2)


Мои предложения заключались бы в том, чтобы

1 программно создайте представление контейнера, заполните контейнер контроллером представления, а затем попробуйте добавить его в качестве inputView для вашей клавиатуры.

Я сомневаюсь, что это сработает, но попробовать точно не помешает.

2 возможно, пересмотрите свой дизайн (если это ваш выбор) и вместо этого используйте всплывающее представление, содержащее средство выбора даты.

В любом случае дайте мне знать, как это работает.

person Brandon A    schedule 29.07.2015
comment
Теперь я заменил textField на метку, стилизованную под текстовое поле по умолчанию) - person mkz; 29.07.2015

Не можете ли вы установить значение datePicker.view в качестве входного представления

person Sujith Chandran    schedule 29.07.2015