iOSのオペレーティングシステム(OS)レベルでの「下に引っ張って検索」の機能としては、Spotlight検索が存在します。ユーザーはホーム画面を下にスワイプすることでSpotlight検索バーを開き、アプリ、コンテンツ、ウェブ結果などを検索できます。
ただし、個々のアプリ内でのプルダウン検索機能は、アプリ開発者が自身のアプリ内で実装するものです。Spotlightのようなシステムレベルの機能にアクセスまたは修正することはできませんが、アプリ内で類似のユーザーエクスペリエンスを作ることは可能です。
また、開発者はAppleのCore Spotlightフレームワークを使用して、自身のアプリのコンテンツをSpotlight検索に表示させることも可能です。これにより、ユーザーはSpotlightからアプリのコンテンツを直接検索・アクセスできるようになります。
import CoreSpotlight import MobileCoreServices // ステップ1: コンテンツをインデックス化 let searchableItemAttributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeText as String) searchableItemAttributeSet.title = "Facebook" searchableItemAttributeSet.contentDescription = "Description of Facebook" searchableItemAttributeSet.keywords = ["ふ", "Facebook", "Social Media"] let searchableItem = CSSearchableItem(uniqueIdentifier: "uniqueIdentifierForFacebook", domainIdentifier: "com.yourapp.domain", attributeSet: searchableItemAttributeSet) CSSearchableIndex.default().indexSearchableItems([searchableItem]) { error in if let error = error { print("Error indexing item: \(error.localizedDescription)") } else { print("Successfully indexed item!") } } // ステップ2: AppDelegate.swiftでユーザーアクションをハンドリング func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { if userActivity.activityType == CSSearchableItemActionType { if let uniqueIdentifier = userActivity.userInfo?[CSSearchableItemActivityIdentifier] as? String { // ここでuniqueIdentifierを使って該当のコンテンツにナビゲートするロジックを実装 } } return true }
https://dev.classmethod.jp/articles/core-spotlight-continuing/