我想出了一个解决方法。如果有更好的方法来实现这一点,我想知道。但如果有人也在寻找这个解决方案,我就是这样做的。
我通过界面生成器添加了一个 UITextView 并检查了属性检查器下视图类别中的隐藏属性,这样用户就不会意外激活文本字段。然后:
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? 传递选定的行以操作该行中的数据。