前提・実現したいこと
Xcodeでswiftを使ったiosアプリ開発を勉強しています。
UIsearchBarを使用したく使い方を学んでいるところなのですが、実行時に警告表示がコンソールに表示され解決法分からず困っています。
該当のソースコード(問題が発生するサンプルコードです。内容に意味はありません。)
swift
1import UIKit 2 3@UIApplicationMain 4class AppDelegate: UIResponder, UIApplicationDelegate { 5 6 var window: UIWindow? 7 8 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 9 10 window = UIWindow(frame: UIScreen.main.bounds) 11 window?.rootViewController = MainViewController() 12 window?.makeKeyAndVisible() 13 14 return true 15 } 16 17} 18 19class MainViewController: UIViewController, UISearchBarDelegate { 20 21 override func viewDidLoad() { 22 super.viewDidLoad() 23 24 view.backgroundColor = .white 25 26 let searchBar = UISearchBar() 27 searchBar.delegate = self 28 searchBar.frame = CGRect(x: 0, y: 200, width: view.frame.width, height: 44) 29 view.addSubview(searchBar) 30 } 31 32 func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 33 // 検索ボタンを押したらキーボードを閉じる 34 searchBar.resignFirstResponder() 35 } 36 37} 38
※MainStoryBoardは使用せずコードにてUIの実装をしています。
再現手順
①上記コードを実行し、表示されているSearchBarをクリック → キーボードが開く
②任意の文字を入力し、「search」ボタンをクリック → キーボードが閉じる
③ホームボタンをクリック → デバッグコンソールに警告メッセージが出力
発生している問題・エラーメッセージ
[Snapshotting] Snapshotting a view (0x7fa911829000, UIKeyboardImpl) that is not in a visible window requires afterScreenUpdates:YES.
この警告メッセージの解消方法が分からず困っています。
原因および解決方法を教えていただきたいです。
また、検索ボタンを押した時にデフォルトだとキーボードが閉じないためdelegateにてresignFirstResponder()を実行していますが、
この方法で合っているのでしょうか?
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
MacOS Catalina 10.15.6
Xcode 11.7
シミュレーション実行対象はiphone8(ios 13.7)

あなたの回答
tips
プレビュー