0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

テキストが入力されたらSaveボタンを有効にする方法(Swift)

Last updated at Posted at 2021-03-26

現在オリジナルアプリのスケジュール機能を実装するために、基礎としてメモアプリを作成しています

※この記事ではセーブボタンの配置などについては触れません

###完成形
空欄だとSaveボタンが無効になり

スクリーンショット 2017-12-01 0.09.34.png

文字を入力すると有効になります
スクリーンショット 2017-12-01 0.09.34.png

###目次

##Saveボタンを無効にする方法

まずは、Saveボタンを無効にします

記述する場所はoverride func viewDidLoad() の部分です

override func viewDidLoad() の部分にself.saveButton.isEnabled = falseを追記します

ViewController.swift
override func viewDidLoad() {
    super.viewDidLoad()
    self.saveButton.isEnabled = false
}

saveButtonに対してisEnabledで、ボタンを有効か無効にすることができます、なので今回はfalseにして無効にします

##テキストフィールドに入力された値を検出する
このままではセーブボタンが無効のままなのでテキストフィールドに入力された場合、ボタンを有効にします
そのために、テキストフィールドに入力された値を検出する方法を解説します。

まず、Main.Storyboardにあるテキストフィールドをコントロールキーを押しながらドラックアンドドロップをし、紐付けます。

ViewController.swift
    override func viewDidLoad() {
        super.viewDidLoad()
        self.saveButton.isEnabled = false
    }
    _____________________
    //↑にドラックアンドドロップ
   
スクリーンショット 2017-12-01 0.09.34.png ___ ####ドラックアンドドロップをすると下のようなものが出てきます スクリーンショット 2017-12-01 0.09.34.png

それぞれ

**Connection(接続タイプ)**をAction

**Name(プロパティ名)**をmemoTextFieldChanged

**Event(イベント)**をEditing Changed

にします。


####次に先ほど入力したmemoTextFieldChangedメソッドの処理を記述します

ViewController.swift
1    override func viewDidLoad() {
2        super.viewDidLoad()
3        self.saveButton.isEnabled = false
4    }
5    @IBAction func memoTextFieldChanged(_ sender: Any) {
6        let memo = self.memoTextField.text ?? ""
7        self.saveButton.isEnabled = !memo.isEmpty
8    }
   

繰り返しになりますが、7行目のisEnabledがボタンを有効、無効にします。

6行目では、テキストフィールドnil)か判断します。

7行目の**isEmptyテキストフィールドnil**の時はfalse
nilではない時はtrueと判別しsaveButtonを有効にできます。

※memoの横に!がないとtrue、falseが逆になってしまいます。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?