2013-12-19 3 views
2

Я хочу внедрить функциональность, например, когда я нажимаю на поле поиска, мне нужно отобразить список критериев в поле поиска. Основываясь на критериях, которые мне нужно искать. как я могу добавить этот список в поле поиска. Спасибо заранее.Как добавить список в поле поиска динамически?

+0

Я обновил код. Пожалуйста, загляните в него –

ответ

0

Для динамически появляется список в SearchField, вы должны перетащить outlet из searchfield в вашем window первый затем подключить делегат searchfield к fileowners как только это будет сделано, то impelement ниже код: -

В этом ниже код содержит один массив элементов, и после того, как если вы введете в поле поиска любое слово, длина которого больше 3, тогда он отобразит список результатов в соответствии с соответствующими словами в array.

-(void)controlTextDidChange:(NSNotification *)obj 
{ 
NSArray *[email protected][@"item1",@"item2",@"item3",@"item4",@"test1",@"test2",@"test3",@"test4",@"test5"]; 
    NSString *searchString = [self.searchField stringValue]; 
    NSMenu *menu= [[NSMenu alloc] initWithTitle: @"results"]; 
    if (searchString.length>3) 
    { 
    NSArray *filteredArray = [filterArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF like %@", [searchString stringByAppendingString:@"*"]]]; 
    for (NSString *addMenuItem in filteredArray) 
    { 
    [menu addItemWithTitle: addMenuItem action: @selector(someAction:) keyEquivalent: @""]; 
    } 

    NSEvent *event = [NSEvent otherEventWithType: NSApplicationDefined 
             location: [self.searchField frame].origin 
            modifierFlags: 0 
             timestamp: 0 
            windowNumber: [[self.searchField window] windowNumber] 
             context: [[self.searchField window] graphicsContext] 
             subtype: NSAppKitDefined 
              data1: 0 
              data2: 0]; 
    [NSMenu popUpContextMenu: [menu autorelease] withEvent: event forView: self.searchField]; 
} 
} 
-(void)someAction:(id)sender 
{ 
    //if you want to perform some action write here 
} 
+0

Спасибо за ответ. Но мое требование похоже на то, что если есть три массива, там есть три массива. Я хочу отобразить имена трех массивов под полем поиска в виде списка. Если я выберу любой из них, тогда поиск будет происходить в этом перкуляторе выбранного массива. Мне нужно, как отобразить этот список массивов? – Suneetha

+0

Ohk это также возможно. Но тогда есть одна причина, почему вы занимаетесь поиском здесь. Потому что в поисковом поле пользователь может вводить слова, а затем на основании этого он будет искать? –

+0

Мне просто нужно искать только в этом перкулярном поле (массив), который пользователь может выбрать. Теперь в моем коде происходит глобальный поиск. Вместо того, чтобы давать все результаты, мне нужно предоставить параметры пользователю, в каком поле они хотят искать. – Suneetha