質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Q&A

0回答

214閲覧

【SwiftUI】複数行のText(UITextViewを活用して作成したTextFieldに入力されたText )をFirestoreに格納したい

Chiaki1111

総合スコア15

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

0グッド

0クリップ

投稿2020/06/10 17:02

前提・実現したいこと

UITextViewを活用してTextFieldを作成したのですが、
そこに書かれたTextをFirestoreに格納したいです。

通常のやり方だと、格納されません。
どうしたら良いでしょうか、すいませんがご教示ください。

該当のソースコード

SwiftUI

1 2 3//作成した複数行のTextField 4struct MultiLineTextField: UIViewRepresentable { 5 @Binding var text: String 6 7 func makeCoordinator() -> Coordinator { 8 MultiLineTextField.Coordinator(parent1: self) 9 } 10 11 func makeUIView(context: Context) -> UITextView { 12 let textView = UITextView() 13 textView.delegate = context.coordinator 14 textView.isScrollEnabled = true 15 textView.isEditable = true 16 textView.isUserInteractionEnabled = true 17 textView.text = "xxx" 18 textView.textColor = UITraitCollection.current.userInterfaceStyle == .dark ? UIColor(displayP3Red: 0.4, green: 0.4, blue: 0.4, alpha: 1) : .lightGray 19 textView.font = .systemFont(ofSize: 17) 20 textView.backgroundColor = UITraitCollection.current.userInterfaceStyle == .dark ? UIColor(displayP3Red: 0.2, green: 0.2, blue: 0.2, alpha: 1) : UIColor(displayP3Red: 0.9, green: 0.9, blue: 0.9, alpha: 1) 21 return textView 22 } 23 24 func updateUIView(_ uiView: UITextView, context: Context) { 25 } 26 27 class Coordinator: NSObject, UITextViewDelegate { 28 var parent : MultiLineTextField 29 30 init(parent1: MultiLineTextField) { 31 parent = parent1 32 } 33 34 func textViewDidBeginEditing(_ textView: UITextView) { 35 if self.parent.text == "" { 36 textView.text = "" 37 textView.textColor = .black 38 } 39 } 40 41 internal func textViewDidEndEditing(_ textView: UITextView) { 42 if self.parent.text == "" { 43 textView.text = "xxx" 44 textView.textColor = UITraitCollection.current.userInterfaceStyle == .dark ? .darkGray : .lightGray 45 } 46 } 47 } 48} 49 50//firestoreへの格納時の処理、textがMultiLineTextFieldで取得した値 51db.collection("xxx").document("xxx").setData([..., "text": self.text,...]){(error) in 52 if error != nil{ 53 print((error?.localizedDescription)!) 54 return 55 } 56 } 57} 58

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問