29

常にキーボードの上にあるように uiview を追加しようとしています。最初に KeyboardWillShow/Hide を使用しましたが、すべてのケースをカバーするわけではなく、inputAccesoryView を使用しようとしています。これは私が試したものです:

private var accessoryView = UIView(frame: CGRectZero)

class ViewController : UIViewController {

    var myView: customUIView

    override var inputAccessoryView: UIView {
        return accessoryView
    }

    override func canBecomeFirstResponder() -> Bool {
        return true
    }

    override func viewDidLoad() {
       super.viewDidLoad()
       accessoryView = myView
    }
}

次のエラーが表示されます。

キャッチされない例外 'UIViewControllerHierarchyInconsistency' が原因でアプリを終了しています。

どんな助けでも大歓迎です!

4

4 に答える 4

53

ビューをキーボードの上に固定するためのコード自体は非常に単純です。textField投稿したコードが正しくありません。これを試してください (ストーリーボードで に接続する必要があることに注意してUITextFieldください)。

@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()

    let customView = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 44))
    customView.backgroundColor = UIColor.red
    textField.inputAccessoryView = customView
}
于 2016-02-28T23:29:18.237 に答える
1

コードに加える変更:

  • accessoryView高さを与える
  • オーバーライドvar myView: customUIView全体を削除(&D)viewDidLoad()
于 2016-12-13T18:08:10.027 に答える