3

次の UISearchbar コードがあります。

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    NSTimer *myTimer;

    NSLog(@"Timer=%@",myTimer);
    if (myTimer)
    {
        if ([myTimer isValid])
        {
            [myTimer invalidate];
        }
        myTimer=nil;
    }
    myTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(OnTextChange) userInfo:nil repeats:NO];

}

上記のコードを書いた後、私のログはTimer=null

OnTextChangeUrlからデータを取得するメソッドです。

前もって感謝します !!

4

3 に答える 3

0

NSTimer を使用して検索の呼び出しを遅らせ、テキストが変更されるたびにタイマーをキャンセルできます。 オブジェクトに NSTimer プロパティまたはフィールドを指定します。searchBar:textDidChange: 既存のタイマーをキャンセルしてから、新しいタイマーを作成してスケジュールします。タイマーのターゲットは、検索メソッドを呼び出す必要があります。

この重複した質問を参照してください: UISearchBar detect when user stop type and don't search immediately so detect pause

于 2013-05-01T06:26:50.867 に答える