質問するログイン新規登録

回答編集履歴

4

true!

2018/05/30 08:05

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  ```swift
20
20
  //enable/disableの制御だけ
21
- saveButton.isEnabled = !(userName.text?.isEmpty ?? false)
21
+ saveButton.isEnabled = !(userName.text?.isEmpty ?? true)
22
22
  ```
23
23
 
24
24
  ---

3

補足

2018/05/30 08:05

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -19,4 +19,10 @@
19
19
  ```swift
20
20
  //enable/disableの制御だけ
21
21
  saveButton.isEnabled = !(userName.text?.isEmpty ?? false)
22
- ```
22
+ ```
23
+
24
+ ---
25
+
26
+ ##### 補足
27
+
28
+ `nil`と`""`(未入力)は別物なのでキチンと区別しましょう。

2

全面書き換え

2018/05/30 07:21

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,15 +1,16 @@
1
- 今のコードだとuserName.textがnilのときdisableにならうな気が
1
+ 初期化時タップ無効していいかタップ出来てしまう、ということではいですかね
2
- (このTextFieldはコードで生成したのでか?)
2
+ あと、addTargetが何度呼ばれてのもマズイです。
3
3
 
4
- あと、何度もaddTargetしてしまうのでマズイですね。
5
-
6
4
  こんな感じでどうでしょう?
7
5
 
8
6
  #### 初期化時
9
7
 
10
8
  ```swift
9
+ //カラにする
11
10
  userName.text = ""
11
+ //タップ無効
12
12
  saveButton.isEnabled = false
13
+ //タップ処理を登録
13
14
  saveButton.addTarget(self, action: #selector(save(_:)), for: .touchUpInside)
14
15
  ```
15
16
 

1

isEmpty + nil考慮

2018/05/30 07:18

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -17,5 +17,5 @@
17
17
 
18
18
  ```swift
19
19
  //enable/disableの制御だけ
20
- saveButton.isEnabled = userName.text.count > 0
20
+ saveButton.isEnabled = !(userName.text?.isEmpty ?? false)
21
21
  ```