回答編集履歴

3

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

2022/05/22 04:55

投稿

退会済みユーザー
test CHANGED
@@ -16,6 +16,8 @@
16
16
 
17
17
  追記です。
18
18
  コメントありがとうございます。
19
+
20
+ > view.endEditing(true)のViewは何を表しているのでしょうか?
19
21
 
20
22
  > このメソッドは、現在のビューとそのサブビュー階層で、現在ファーストレスポンダであるテキストフィールドを探します。見つかった場合は、そのテキストフィールドに最初のレスポンダとして辞任するように要求します。forceパラメータがtrueに設定されている場合、テキストフィールドは質問されることすらなく、強制的に辞任させられます。
21
23
  > https://developer.apple.com/documentation/uikit/uiview/1619630-endediting
@@ -41,3 +43,26 @@
41
43
  `tableView(_:didSelectRowAt:)`が先に動いて画面の遷移だけ処理されているのでしょうか。
42
44
  `tableView(_:didSelectRowAt:)`の中にも`endEditing(_:)`を記述してみたらどうでしょうか?
43
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な関数も `.` から記述することができるのですね。
68
+

2

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

2022/05/20 14:16

投稿

退会済みユーザー
test CHANGED
@@ -20,10 +20,24 @@
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(_:)`を記述してみたらどうでしょうか?
43
+

1

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

2022/05/19 13:58

投稿

退会済みユーザー
test CHANGED
@@ -12,3 +12,18 @@
12
12
 
13
13
  リンク先にあるように、UITapGestureRecognizerを使うと希望する動きが実現できそうですがどうでしょうか。
14
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
+ テキストフィールド以外の空いているスペースをタップしても同じでしょうか?