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

回答編集履歴

3

ナビゲーションバーのビューのendEditingについてを追記しました。

2022/05/22 04:55

投稿

退会済みユーザー
answer CHANGED
@@ -17,6 +17,8 @@
17
17
  追記です。
18
18
  コメントありがとうございます。
19
19
 
20
+ > view.endEditing(true)のViewは何を表しているのでしょうか?
21
+
20
22
  > このメソッドは、現在のビューとそのサブビュー階層で、現在ファーストレスポンダであるテキストフィールドを探します。見つかった場合は、そのテキストフィールドに最初のレスポンダとして辞任するように要求します。forceパラメータがtrueに設定されている場合、テキストフィールドは質問されることすらなく、強制的に辞任させられます。
21
23
  > https://developer.apple.com/documentation/uikit/uiview/1619630-endediting
22
24
 
@@ -40,3 +42,26 @@
40
42
  > cellをタップして遷移後戻ってきてもキーボードが閉じていない状態です
41
43
  `tableView(_:didSelectRowAt:)`が先に動いて画面の遷移だけ処理されているのでしょうか。
42
44
  `tableView(_:didSelectRowAt:)`の中にも`endEditing(_:)`を記述してみたらどうでしょうか?
45
+
46
+ ---
47
+
48
+ コメントありがとうございます。
49
+ 3つ目の追記です。
50
+
51
+ > Storyboardには配置しておりません
52
+
53
+ ごめんなさい。
54
+ 再現確認した際に、ナビゲーションバーにUISearchBarを配置せずに、下側の枠に配置していました。。
55
+ この場合、`self.view.endEditing(true)`で希望する動きになっているように見えていたようでした。
56
+
57
+ ナビゲーションバーは別のビューになるようで、次の2つのいずれかするとキーボードが閉じるように思いますがどうでしょうか。
58
+
59
+ * `searchBar.endEditing(true)`
60
+ * `navigationItem.titleView?.endEditing(true)`
61
+
62
+
63
+ > .rgbの部分はエラーになってません UIcolorのswiftファイルを作ってそこでrgbの関数を定義しているからだと思います。(画像追加しました)
64
+
65
+ そうだったのですね。
66
+ 気になっていたところでしたのでスッキリしました。
67
+ staticな関数も `.` から記述することができるのですね。

2

セルをタップした時の内容を追記しました。

2022/05/20 14:16

投稿

退会済みユーザー
answer CHANGED
@@ -20,10 +20,23 @@
20
20
  > このメソッドは、現在のビューとそのサブビュー階層で、現在ファーストレスポンダであるテキストフィールドを探します。見つかった場合は、そのテキストフィールドに最初のレスポンダとして辞任するように要求します。forceパラメータがtrueに設定されている場合、テキストフィールドは質問されることすらなく、強制的に辞任させられます。
21
21
  > https://developer.apple.com/documentation/uikit/uiview/1619630-endediting
22
22
 
23
- すごく適当になってしまうかもしれませんが、
23
+ すごく ~~適当~~ 雑な説明になってしまうかもしれませんが、
24
24
  テキストフィールドにフォーカスがあるときに`endEditing(_:)`を呼び出すと、
25
25
  テキストフィールドからフォーカスを外して、
26
26
  結果的にキーボードを非表示にすることができる、
27
27
  ということだと思います。
28
28
 
29
- テキストフィールド以外の空いているスペースをタップしても同じでしょうか?
29
+ テキストフィールド以外の空いているスペースをタップしても同じでしょうか?
30
+
31
+ ---
32
+
33
+ コメントありがとうございます。
34
+ さらに追記です。
35
+
36
+ > テキストフィールド以外をタップしても閉じないです
37
+ セル以外の箇所はどうでしょうか?
38
+ *セルがいっぱいでキーボードとの間に隙間はないでしょうか・・
39
+
40
+ > cellをタップして遷移後戻ってきてもキーボードが閉じていない状態です
41
+ `tableView(_:didSelectRowAt:)`が先に動いて画面の遷移だけ処理されているのでしょうか。
42
+ `tableView(_:didSelectRowAt:)`の中にも`endEditing(_:)`を記述してみたらどうでしょうか?

1

endEditingについてを追記しました。

2022/05/19 13:58

投稿

退会済みユーザー
answer CHANGED
@@ -11,3 +11,19 @@
11
11
  https://qiita.com/ayukin/items/291171244f973860fdb6
12
12
 
13
13
  リンク先にあるように、UITapGestureRecognizerを使うと希望する動きが実現できそうですがどうでしょうか。
14
+
15
+ ---
16
+
17
+ 追記です。
18
+ コメントありがとうございます。
19
+
20
+ > このメソッドは、現在のビューとそのサブビュー階層で、現在ファーストレスポンダであるテキストフィールドを探します。見つかった場合は、そのテキストフィールドに最初のレスポンダとして辞任するように要求します。forceパラメータがtrueに設定されている場合、テキストフィールドは質問されることすらなく、強制的に辞任させられます。
21
+ > https://developer.apple.com/documentation/uikit/uiview/1619630-endediting
22
+
23
+ すごく適当になってしまうかもしれませんが、
24
+ テキストフィールドにフォーカスがあるときに`endEditing(_:)`を呼び出すと、
25
+ テキストフィールドからフォーカスを外して、
26
+ 結果的にキーボードを非表示にすることができる、
27
+ ということだと思います。
28
+
29
+ テキストフィールド以外の空いているスペースをタップしても同じでしょうか?