今回の記事はtextfieldの編集後に処理を行うdelegateの設定方法をご紹介する記事です。初心者にもわかるようにかできるだけ簡単に分かりやすく記載していきます。是非参考にして下さい。
Swiftでtextfieldを使う
Swiftでtextfieldでを使う方法は下記記事で詳しく設定しています。今回のdelegate設定に関してはtextfieldの設置とoutlet接続、が必要になってきます。下記を参考にして下さい。
「【Swift】textfieldの使い方ご紹介。〜 初心者向け 〜」
textfieldのdelegate設定
ここまででviewcontroller.swiftに紐付けまでは行えている前提で話を進めます。
まず、classに下記のような記述で「UITextFieldDelegate」を追加します。
class ViewController: UIViewController,UITextFieldDelegate {
//outlet接続したtextfield
@IBOutlet weak var testtext: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
}
これでtextfieldのdelegateが追加されました。ちなみにdelagateとは何かというと簡単にいうと「処理を行う際に連結して処理が自動的に行われる仕組みのこと」です。下記に解説記事を用意しているので気になる方は参考にしてみて下さい。
今回の記事ではわかっていなくとも本質の部分は問題なく理解できます。
textfieldの編集後に処理を行う
では先ほど追加したdelageteを使用して後続処理にあたるプロトコルの追加を行なっていきます。
class ViewController: UIViewController,UITextFieldDelegate {
//outlet接続したtextfield
@IBOutlet weak var testtext: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
testtext.delegate = self
}
//テキストフィールドでリターンが押されたときに通知され起動するメソッド
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
print("リターンが押されました。")
//文字入力画面閉じる
self.view.endEditing(true)
return true
}
}
解説をしていきます。
追加したdelegateを下記部分でtextfield(testtext)に登録します。これでtextfieldでUITextfieldのdelagateに対応したプロトコルが使用できるようになります。
testtext.delegate = self
今回はそのプロトコルの中のリターンが押された時の処理を実装しております。それが下記部分です。
//テキストフィールドでリターンが押されたときに通知され起動するメソッド
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
print("リターンが押されました。")
//文字入力画面閉じる
self.view.endEditing(true)
return true
}
他にも多数のdelegateに紐づくプロトコルがありますので詳しくは公式などから確認してみましょう。
では今回の記事は以上です。他にも多数のSwift関連の記事を記載しているので是非そちらも合わせて参考にしてみて下さい。
コメント