回避策を見つけました。これを実装するより良い方法があれば、知りたいです。しかし、この解決策も探している人がいる場合は、次の方法で解決しました。
ユーザーが誤ってテキストフィールドをアクティブにしないように、インターフェイスビルダーを介して UITextView を追加し、ビューカテゴリの属性インスペクターで Hidden 属性をチェックしました。それで:
func datePickerSetupTest() {
let dateView = UIView(frame: CGRectMake(0, 100, 320, 160))
datePicker = UIDatePicker(frame: CGRectMake(0, 0, 320, 160))
datePicker.datePickerMode = .Date
dateView.addSubview(datePicker)
inputTextField.inputView = dateView
let doneButton = UIButton (frame: CGRectMake(100, 100, 100, 44))
doneButton.setTitle("Done", forState: UIControlState.Normal)
doneButton.addTarget(self, action: "datePickerSelected", forControlEvents: UIControlEvents.TouchUpInside)
doneButton.backgroundColor = UIColor .blueColor()
inputTextField.inputAccessoryView = doneButton
}
func datePickerSelected() {
print("selectedRow: \(selectedRow!)")
inputTextField.resignFirstResponder()
}
および UITableViewRowAction 内:
tableView.editing = false
self.selectedRow = indexPath.row
self.inputTextField.becomeFirstResponder()
変数 selectedView: Int を使用していますか? 選択した行を渡して、その行のデータを操作します。