私はSwift 2.2を使用していると思うXcode 7.3に簡単なiOSアプリケーションを作成しています。私は、UIToolParをUITextフィールドでUITatePickerを使用しようとしています。何らかの理由でCancelボタンをタップすると、コントローラのdatePickerCancelledメソッドが呼び出されないようです。すべてがうまく表示されます(ピッカー、ボタンなど)が、イベントは発生しません。私はセレクタをUIBarButtonItemに追加するいくつかのバリエーションを試しましたが、何も動作していないようです。このコードからわかるように、これはかなり簡単なケースなので、なぜこのように難しいのでしょうか?ありがとうございました。UIButtonBarItemがセレクタを起動しないようです
var datePickerToolbar = UIToolbar()
これはゼロサイズのツールバーにつながる:
override func viewDidLoad() {
super.viewDidLoad()
var datePicker = UIDatePicker()
var datePickerToolbar = UIToolbar()
let doneButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: nil, action: nil)
let cancelButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Cancel, target: self, action: #selector(datePickerCancelled))
let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
datePickerToolbar.setItems([cancelButton,flexSpace, doneButton], animated: true)
datePicker.userInteractionEnabled = true
cancelButton.enabled = true
self.dateField.inputView = datePicker
self.dateField.inputAccessoryView = datePickerToolbar
}
func datePickerCancelled(){
self.datePicker.resignFirstResponder();
}` I
:
はおそらく、あなたはこれを意味しました。ピッカーの上にあるボタンがうまく表示されていても、イベントハンドラを呼び出すことができませんでした。次のコードを追加すると私の問題が解決しましたself.datePickerToolbar.frame = CGRectMake(0、0、self.view.frame.size.width、44) – Alfawan