0

検索メカニズムを作成する必要がある UIPicker があります。このピッカーに供給されるデータは文字列の配列です。ユーザーが検索文字列を入力すると (それを処理する UISearchBar があります)、検索語を含むすべての文字列を検索したいと思います。以下の例から、述語を記述してから配列をフィルタリングする必要があるようです。私が今抱えている問題は、検索結果をユーザーに表示する方法がわからないことです。結果セットを元の配列に割り当てようとしましたが、正しくありません。誰かがコード例で UIPicker の検索を実装するためのテクニックを提案できますか?

NSMutableArray* names = [NSMutableArray arrayWithObjects:@"Andy", @"Bart", @"Bob", nil]; 
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] 'b'"];
NSArray* namesStartingWithB = [names filteredArrayUsingPredicate: predicate];
4

2 に答える 2

0

これは決して独創的なソリューションではありませんが、結果を別の配列 (つまり、searchResultsArr) として格納し、データ ソースをそれに変更するのはどうでしょうか? コードでは、nil でない限り、searchResultsArr を使用します。nil の場合は、完全な配列を使用します。

必ず電話する

[picker reloadAllComponents];

あなたがそれを切り替えるとき

于 2010-02-03T19:35:29.077 に答える
0

ここに作業プロジェクトがあります

述語では大文字と小文字が区別されることに注意してください。小文字の b を使用したため、結果は返されません。私の解決策は、基本的にジョーが提案したものと同じです。2 つのアレイを使用します。完全なデータセット用の 1 つの配列と、検索結果用の別の配列。ピッカーのデータソースは部分的な配列であり、検索を行うときにピッカーをリロードするだけです。

于 2010-02-03T20:32:47.620 に答える