0

カスタムセルに s がありますUITableViewUITextField

私は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から情報を取得して、キーボードのクラスロジックに渡す必要があると思います。しかし、私はそれを行う方法がわかりません。

4

1 に答える 1