Я хочу внедрить функциональность, например, когда я нажимаю на поле поиска, мне нужно отобразить список критериев в поле поиска. Основываясь на критериях, которые мне нужно искать. как я могу добавить этот список в поле поиска. Спасибо заранее.Как добавить список в поле поиска динамически?
ответ
Для динамически появляется список в 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
}
Спасибо за ответ. Но мое требование похоже на то, что если есть три массива, там есть три массива. Я хочу отобразить имена трех массивов под полем поиска в виде списка. Если я выберу любой из них, тогда поиск будет происходить в этом перкуляторе выбранного массива. Мне нужно, как отобразить этот список массивов? – Suneetha
Ohk это также возможно. Но тогда есть одна причина, почему вы занимаетесь поиском здесь. Потому что в поисковом поле пользователь может вводить слова, а затем на основании этого он будет искать? –
Мне просто нужно искать только в этом перкулярном поле (массив), который пользователь может выбрать. Теперь в моем коде происходит глобальный поиск. Вместо того, чтобы давать все результаты, мне нужно предоставить параметры пользователю, в каком поле они хотят искать. – Suneetha
Я обновил код. Пожалуйста, загляните в него –