0

私はこのガイドを実装しようとしましたが、内部で実装しました:

let doneItem = UITableViewRowAction(style: .Normal, title: "  Done  ") { (action, indexPath) -> Void in }

しかし、「inputView」の割り当ては、私が行き詰まっているところです。

私はそれをtableViewの入力ビューに割り当ててみましたが、ドキュメントには次のように書かれています:

「この読み取り専用プロパティの値は nil です。ユーザーからの入力を収集するためにカスタム ビューを必要とするレスポンダ オブジェクトは、このプロパティを読み書き可能として再宣言し、それを使用してカスタム入力ビューを管理する必要があります。」

だから私はこのガイドに従ってtableViewのinputViewを再宣言しようとしましたが、どこにも行かないようです。

ヘルプ。

4

1 に答える 1

0

回避策を見つけました。これを実装するより良い方法があれば、知りたいです。しかし、この解決策も探している人がいる場合は、次の方法で解決しました。

ユーザーが誤ってテキストフィールドをアクティブにしないように、インターフェイスビルダーを介して 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 を使用していますか? 選択した行を渡して、その行のデータを操作します。

于 2016-03-31T21:35:38.213 に答える