0

iOS 13 より下では、私の UITextField はキーボードを正しく起動し、ユーザーが回答を入力できるようにします。

iOS 13 以上でtextFieldDidBeginEditing()は、テキスト フィールドをタップするとトリガーされますが、キーボードが表示されないため、ユーザーは答えを出すことができません。

デバッグコンソールはすぐにエラーをスローしませんが、最終的に次のメッセージが表示されます。これが鍵だと思います:

Could not find keyboard scene delegate for interaction view

シーンが主なものになるため、後のiOSでエラーが表示されると思います-そして、どこかでデリゲートを設定して、キーボードが最初のシーンの前面に表示されるようにする必要がありました。

これを行う方法がわかりません!

私の UITextField は完全に標準です。エラーを再現するために、SceneDelegate に次のセットアップ コードがあります。

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?


    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        
        let windowScene = UIWindowScene(session: session, connectionOptions: connectionOptions)
        self.window = UIWindow(windowScene: windowScene)
        
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        
        let initialViewController = storyboard.instantiateViewController(withIdentifier: "VC" )
        self.window?.rootViewController = initialViewController
        self.window?.makeKeyAndVisible()
        
        guard let _ = (scene as? UIWindowScene) else { return }
    }

実際のアプリでは、このサブルーチンを使用して、ユーザーが初めての場合にチュートリアルを起動します (つまり、開始ビュー コントローラーを変更できるようにする必要があります)。

4

1 に答える 1