🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

2381閲覧

SwiftUIでSearchBarを実現の際のエラー

cherry22

総合スコア7

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/12/16 18:35

前提・実現したいこと

SwiftUIでSearchBarを実現する際に下記のエラーが出ました。
その解決方法が分からないので教えてください。

発生している問題・エラーメッセージ

Compiling failed: 'ContentView_Previews' is not a member type of 'SearchBer'

該当のソースコード

import SwiftUI struct SwiftView: View { let names = ["Raju", "Ghanshyam", "Baburao Ganpatrao Apte", "Anuradha", "Kabira", "Chaman Jhinga", "Devi Prasad", "Khadak Singh"] @State private var searchTerm : String = "" var body: some View { NavigationView{ List { SearchBar(text: $searchTerm) ForEach(self.names.filter{ self.searchTerm.isEmpty ? true : $0.localizedStandardContains(self.searchTerm) }, id: .self) { name in Text(name) } } .navigationBarTitle(Text("Search Bar")) } } } struct SwiftView_Previews: PreviewProvider { static var previews: some View { SwiftView() } }
import SwiftUI import UIKit struct SearchBar : UIViewRepresentable { @Binding var text : String class Cordinator : NSObject, UISearchBarDelegate { @Binding var text : String init(text : Binding<String>) { _text = text } func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { text = searchText } } func makeCoordinator() -> SearchBar.Cordinator { return Cordinator(text: $text) } func makeUIView(context: UIViewRepresentableContext<SearchBar>) -> UISearchBar { let searchBar = UISearchBar(frame: .zero) searchBar.delegate = context.coordinator return searchBar } func updateUIView(_ uiView: UISearchBar, context: UIViewRepresentableContext<SearchBar>) { uiView.text = text } }

補足情報(FW/ツールのバージョンなど)

Xcode 11.3beta

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

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

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

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

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

guest

回答3

0

おそらく、提示したソースコード以外に、ContentView.swiftのソースコードがあって、その中でエラーが発生しているのだと思います。

とりあえずContentView.swiftを次のようにして、提示されたソースと一緒にビルドしたら正常に動作しました。

swift

1import SwiftUI 2 3struct ContentView: View { 4 var body: some View { 5 SwiftView() 6 } 7} 8 9struct ContentView_Previews: PreviewProvider { 10 static var previews: some View { 11 ContentView() 12 } 13}

投稿2019/12/17 14:42

TakeOne

総合スコア6299

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

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

cherry22

2019/12/17 15:04

ありがとうございました。
guest

0

ベストアンサー

Compiling failed: 'ContentView_Previews' is not a member type of 'SearchBer'

再現できませんでした。cherry22さんのコードをほぼそのまま利用してうまく行きました。

イメージ説明
念のために、動いているコードをrepoにアップしました:

https://github.com/vanderlvoff/swiftUITutorials

投稿2019/12/17 11:19

vanderlvov

総合スコア687

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

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

cherry22

2019/12/17 15:02

解決しました。 ご丁寧にありがとうございます。
guest

0

どこかにタイポがあるようです。

エラーコードは、SearchBer と言っていますが、示されているコードは全てsearchBarです。(aとeが違います)

投稿2019/12/17 11:16

eytyet

総合スコア803

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問