2015-08-22 2 views
2

Привет, я пытаюсь отображать UIDatePicker вместо клавиатуры, когда вызывается UITextField, чтобы пользователь мог указать время начала и окончания события. Мой код работает, но не очень хорошо, а не так, как я хочу.Использование UIDatePicker вместо клавиатуры для проблем UITextField

Моя первая проблема заключается в том, что всякий раз, когда вы нажимаете на один из UITextField, UIDatePicker приходит только во второй раз, когда используется UITextField. В противном случае отображается оригинальная клавиатура.

Моя вторая проблема заключается в том, что всякий раз, когда редактируется UIDatePicker, изменяется только UITextField всякий раз, когда редактируется UIDatePicker. Мне нужен UITextField, чтобы отобразить строку в UIDatePicker, как только ее откроется, чтобы UITextField был в курсе событий, происходящих на UIDatePicker.

Вот мой текущий код:

override func viewDidLoad() { 
super.viewDidLoad() 
var datePickerView : UIDatePicker = UIDatePicker() 
    datePickerView.datePickerMode = UIDatePickerMode.Time 
    StartTimeTextField.inputView = datePickerView 
    datePickerView.addTarget(self, action: 
    Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged) 

    var datePickerView2 : UIDatePicker = UIDatePicker() 
    datePickerView2.datePickerMode = UIDatePickerMode.Time 
    EndTimeTextField.inputView = datePickerView2 
    datePickerView2.addTarget(self, action: Selector("handleDatePicker2:"), forControlEvents: UIControlEvents.ValueChanged) 
    } 

func handleDatePicker(sender: UIDatePicker) { 
    var dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "hh mm am pm" 
    StartTimeTextField.text = dateFormatter.stringFromDate(sender.date) 
} 



func handleDatePicker2(sender: UIDatePicker) { 
    var dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "hh mm am pm" 
    EndTimeTextField.text = dateFormatter.stringFromDate(sender.date) 
} 

Может кто-нибудь мне помочь? Спасибо

+0

взгляд на это http://stackoverflow.com/questions/4777237/iphone-datepicker-instead- из-за клавиатуры –

+0

@SaurabhPrajapati Это будет работать, но я действительно не понимаю Objective-C. Спасибо, хотя –

ответ

4

Почему вы меняете клавиатуру действием!

Просто добавьте код в viewDidLoad:

var datePickerView : UIDatePicker = UIDatePicker() 
datePickerView.datePickerMode = UIDatePickerMode.Time 
StartTimeTextField.inputView = datePickerView 
datePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged) 

var datePickerView : UIDatePicker = UIDatePicker() 
datePickerView.datePickerMode = UIDatePickerMode.Time 
EndTimeTextField.inputView = datePickerView 
datePickerView.addTarget(self, action: Selector("handleDatePicker2:"), forControlEvents: UIControlEvents.ValueChanged) 

и удалить, что методы, как

@IBAction func 
+0

По какой-то причине ничего не происходит. UIDatePicker не подходит вообще –

+0

@TripPhillips вы удалили действие? из текстового поля? –

+0

@TripPhillips это прекрасно, если вы используете симулятор, то иногда клавиатура не появляется. поэтому нажмите COMMAND + K. –

Смежные вопросы