LoginSignup
16
9

More than 3 years have passed since last update.

キーボードタイプの種類とコード

Posted at

はじめに

キーボードタイプの書き方や種類一旦ここにまとめようかなと思います。

定義

UIKeyboardTypeの定義をJump to Definition(コマンドキーを押しながら調べたいところをクリック)で調べてみました。
以下の通りです。

public enum UIKeyboardType : Int {


    case `default` = 0 // Default type for the current input method.

    case asciiCapable = 1 // Displays a keyboard which can enter ASCII characters

    case numbersAndPunctuation = 2 // Numbers and assorted punctuation.

    case URL = 3 // A type optimized for URL entry (shows . / .com prominently).

    case numberPad = 4 // A number pad with locale-appropriate digits (0-9, ۰-۹, ०-९, etc.). Suitable for PIN entry.

    case phonePad = 5 // A phone pad (1-9, *, 0, #, with letters under the numbers).

    case namePhonePad = 6 // A type optimized for entering a person's name or phone number.

    case emailAddress = 7 // A type optimized for multiple email address entry (shows space @ . prominently).

    @available(iOS 4.1, *)
    case decimalPad = 8 // A number pad with a decimal point.

    @available(iOS 5.0, *)
    case twitter = 9 // A type optimized for twitter text entry (easy access to @ #)

    @available(iOS 7.0, *)
    case webSearch = 10 // A default keyboard type with URL-oriented addition (shows space . prominently).

    @available(iOS 10.0, *)
    case asciiCapableNumberPad = 11 // A number pad (0-9) that will always be ASCII digits.


    public static var alphabet: UIKeyboardType { get } // Deprecated
}

種類

種類は合計13種類あるみたいです。

  • default
  • asciiCapable
  • numbersAndPunctuation
  • URL
  • numberPad
  • phonePad
  • namePhonePad
  • emailAddress
  • decimalPad
  • twitter
  • webSearch
  • asciiCapableNumberPad
  • alphabet

実装方法

TextFieldをアウトレットで接続して、viewDidLoadで表示のコードを書きます。
.以降を変更してそれぞれのキーボードタイプを見ていきます。

import UIKit

class ViewController: UIViewController {

    @IBOutlet var textField1: UITextField!
    @IBOutlet var textField2: UITextField!
    @IBOutlet var textField3: UITextField!
    @IBOutlet var textField4: UITextField!
    @IBOutlet var textField5: UITextField!
    @IBOutlet var textField6: UITextField!
    @IBOutlet var textField7: UITextField!
    @IBOutlet var textField8: UITextField!
    @IBOutlet var textField9: UITextField!
    @IBOutlet var textField10: UITextField!
    @IBOutlet var textField11: UITextField!
    @IBOutlet var textField12: UITextField!
    @IBOutlet var textField13: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        self.textField1.keyboardType = .default
        self.textField2.keyboardType = .asciiCapable
        self.textField3.keyboardType = .numbersAndPunctuation
        self.textField4.keyboardType = .URL
        self.textField5.keyboardType = .numberPad
        self.textField6.keyboardType = .phonePad
        self.textField7.keyboardType = .namePhonePad
        self.textField8.keyboardType = .emailAddress
        self.textField9.keyboardType = .decimalPad
        self.textField10.keyboardType = .twitter
        self.textField11.keyboardType = .webSearch
        self.textField12.keyboardType = .asciiCapableNumberPad
        self.textField13.keyboardType = .alphabet
    }
}

実装結果

① default
スクリーンショット 2020-11-21 17.33.32.png

② asciiCapable
スクリーンショット 2020-11-21 17.32.19.png

③ numbersAndPunctuation
スクリーンショット 2020-11-21 17.35.22.png

④ URL
スクリーンショット 2020-11-21 17.40.37.png

⑤ numberPad
スクリーンショット 2020-11-21 17.41.29.png

⑥ phonePad
スクリーンショット 2020-11-21 17.42.23.png

⑦ namePhonePad
スクリーンショット 2020-11-21 17.42.57.png

⑧ emailAddress
スクリーンショット 2020-11-21 17.43.44.png

⑨ decimalPad
スクリーンショット 2020-11-21 17.44.26.png

⑩ twitter
スクリーンショット 2020-11-21 17.45.00.png

⑪ webSearch
スクリーンショット 2020-11-21 17.45.42.png

⑫ asciiCapableNumberPad
スクリーンショット 2020-11-21 17.46.24.png

⑬ alphabet
スクリーンショット 2020-11-21 17.47.00.png

最後に

13種類もあるなんて知りませんでした。
状況に合わせて使いこなせるようにしたいですね!

16
9
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
16
9