4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SwiftUIでのキーボードの種類

Posted at

はじめに

SwiftUIでキーボードを指定する時の方法を調べたので、記事にしました。
ついでにどんなキーボードの種類があるのかも調べてみました。

キーボードの種類を変更する

キーボードの種類をSwiftUIで指定する方法はめちゃくちゃ簡単です。
以下 modifierをキーボードを表示するView(TextFieldなど)に指定することでキーボードの種類を変更できるようになります。
何の種類のキーボードのするかは、引数のUIKeyboardTypeで指定します。

.keyboardType(_ UIKeyboardType:)

実装例

import SwiftUI

struct DecimalPadKeyboardTextFieldView: View {
    
    @State var text: String = ""
    
    var body: some View {
        TextField("decimalPad", text: $text)
            .keyboardType(.decimalPad)
            .textFieldStyle(.roundedBorder)
    }
}

キーボードの種類一覧

UIKeyboardTypeの種類は以下がある

default

現在の入力方法のデフォルトのキーボードを指定します。

デフォルトのキーボードで.keyboardType(_ UIKeyboardType:)にて指定しなかった場合は、このキーボードの種類が適用されます。

image.png
image.png
image.png
image.png
image.png
image.png
image.png

alphabet

アルファベット入力用のキーボードを指定します。

alphabetはドキュメントにもあるとおり、deprecated になっているのでアルファベットを使いたい場合はこの後に説明するasciiCapableを使った方が良いです。

image.png

asciiCapable

標準の ASCII 文字を表示するキーボードを指定します。

alphabetの代わりに使うことを推奨されているだけあって、できることは同じようです。
絵文字とかが使えないので、デフォルトとの違いでしょうかね

image.png

asciiCapableNumberPad

ASCII 数字のみを出力する数字パッドを指定します。

image.png

decimalPad

数字と小数点付きのキーボードを指定します。

小数点を使うときはこれを使うと良さそうです。

image.png

ロケールによっては小数点(.)ではなく、カンマ(,)となることもあるので注意が必要。
例えば、ロケールがドイツになっている場合はカンマ(,)になる

emailAddress

電子メール アドレスを入力するためのキーボードを指定します。

アットマーク(@)やドット(.)が強調されて、名前の通りメールアドレスが入力しやすくなっています

image.png

namePhonePad

人の名前または電話番号を入力するためのキーパッドを指定します。

image.png

数字のキーボードに切り替えると(123ボタン押下)以下になる。
image.png

numberPad

PIN 入力用の数字キーパッドを指定します。

現状asciiCapableNumberPadを使った時と違いはありませんが、numberPadは PIN 入力用となっているので、PIN でない数字の入力にはasciiCapableNumberPadを使った方が良いかも(今後のアップデートやローケルの違いで細かい違いが出る可能性もあるので)

image.png

numbersAndPunctuation

数字と句読点のキーボードを指定します。

image.png
image.png
image.png
image.png
image.png

phonePad

電話番号を入力するためのキーパッドを指定します。

名前の通り、電話番号を入力しやすいキーボードになっています

image.png
image.png

twitter

Twitter テキスト入力用のキーボードを指定します。アットマーク (" @") とハッシュ (" #") の文字に簡単にアクセスできます。

Twitter(今は X か)に限らず SNS のサービスだと使いやすそうです
アットマーク (" @") とハッシュ (" #") が入力しやすいこと以外は、defaultのキーボードとそれほど変わりません。

image.png

URL

URL 入力用のキーボードを指定します。

ドット(.)、スラッシュ(/)、.jpが強調されています。

image.png
image.png
image.png

image.png

webSearch

Web 検索用語と URL 入力用のキーボードを指定します。

スペースとピリオドが目立つようになっているようですが、それ以外はデフォルトと同じです。

image.png

おわり

以上がSwiftUIでのキーボード種類の変更と、変更できるキーボードの種類一覧でした。
改めて調べてみると結構種類ありますし、今まで文字を打つか数字を打つかぐらいでしか選んでなかったなという気づきがありました。
さまざまな用途で最適化されたキーボードがあるので、どういう用途なのかで使い分けした方がユーザビリティやアクセシビリティの向上がさらに望めそうですね。

4
7
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
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?