LoginSignup
9
6

More than 5 years have passed since last update.

【Swift4】キーボードの上に送信フォームを実装する方法

Last updated at Posted at 2018-02-26

実行環境

【Xcode】Version 9.2
【Swift】Version 4.0.3

概要

iOSキーボードの上に送信フォームを追加する方法です。

前回はキーボードの上にUIToolbarを実装しましたが、
ツールバーに送信フォーム(LINEみたいなやつ)を追加したくなったので、
今回はUIviewでツールバーを自作しています。

【前回の記事】
【Swift4】キーボードの上にUIToolbarを実装する方法

方法

下準備

UItextFieldをいい感じに追加しておきます。
a.png

実装

ViewController.swift
class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        // ツールバーを作成
        let toolBar: UIView = UIView()
        toolBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 45)
        toolBar.backgroundColor = UIColor(red: 238/255, green: 238/255, blue: 238/255, alpha: 1.0)

        // テキストフィールドを作成
        let barTextField: UITextField = UITextField()
        barTextField.frame = CGRect(x: 5, y: 5, width: self.view.frame.width - 65, height: 35)
        barTextField.placeholder = "コメント..."
        barTextField.borderStyle = UITextBorderStyle.roundedRect

        // ボタンを作成
        let barButton: UIButton = UIButton(type: UIButtonType.system)
        barButton.frame = CGRect(x: barTextField.frame.width + 10, y: 5, width: 50, height: 35)
        barButton.setTitle("送信", for: UIControlState.normal)
        barButton.addTarget(self, action: #selector(buttonEvent(_:)), for: UIControlEvents.touchUpInside)

        // アイテムをツールバーに追加
        toolBar.addSubview(barTextField)
        toolBar.addSubview(barButton)

        // ツールバーをビューに設定
        textField.inputAccessoryView = toolBar
        textField.delegate = self
    }

    // ボタンタップ時に実行するメソッド
    @objc func buttonEvent(_ sender: UIButton) {
        // 処理を書く
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

}

実行結果

スクリーンショット 2018-02-26 16.50.47.png

こっちの方法のほうがカスタマイズしやすそうですね。
他にもいい方法があれば教えてください!

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6