カスタムセルに s がありますUITableView
。UITextField
私は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
は、Keyboard クラスのすべてのロジックを備えた電卓キーボードです。コンマが押されたかどうか、およびコンマの後に入力された数字の数を制御します。たとえば、コンマが押された場合はcommaButton.enabled = false
、Keyboard クラスで。
commaButton.enabled = true
別の に切り替えるときに in Keyboard クラスを設定する方法がわかりませんでしたUITextField
。
メソッドで試しtextField.reloadInputViews()
まし
textFieldDidBeginEditing(_:)
たが、うまくいきません。
UITextField
から情報を取得して、キーボードのクラスロジックに渡す必要があると思います。しかし、私はそれを行う方法がわかりません。