我在自定义单元格中UITableView
有UITextField
s 。
因为UITextField
我使用自定义inputView
:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(reuseIdentifier, forIndexPath: indexPath) as! Item
cell.price.text = ""
cell.price.delegate = self
return cell
}
func textFieldDidBeginEditing(textField: UITextField) {
textField.inputView = keyboardView
itemPrice = textField
}
func numberWasTapped(number: String!) {
itemPrice.insertText(number!)
}
使用委托方法:
@IBAction func keyTaped(sender: UIButton) {
switch sender.tag {
case 112:
if !isCommaWasPressed {
isCommaWasPressed = true
sender.enabled = false
self.delegate?.numberWasTapped(sender.titleLabel!.text)
}
break
default:
self.delegate?.numberWasTapped(sender.titleLabel!.text)
}
我的自定义inputView
是具有键盘类中所有逻辑的计算器键盘:它控制是否按下逗号以及在逗号后输入了多少数字。例如,如果按下逗号,则commaButton.enabled = false
在 Keyboard 类中。
当我commaButton.enabled = true
切换到另一个UITextField
.
我尝试textField.reloadInputViews()
了
textFieldDidBeginEditing(_:)
方法,但它不起作用。
我认为,我应该从中获取信息UITextField
并将其传递给键盘的类逻辑。但我不知道该怎么做。