UIAlertView уволить по возвращении


У меня возникли проблемы с оповещением о поиске при использовании вкладки поиск. Когда кто-то набирает свою строку поиска и нажимает return, он только отклоняет клавиатуру, и вам все еще нужно нажать кнопку "Search" (Zoek), чтобы фактически начать веб-поиск.

Вот мой код:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *inputText = [[alertView textFieldAtIndex:0] text];
if( [inputText length] >= 1 )
{
    [searchview addSubview:indicator];
    NSString *urlAddress= @"http://www.sportdirect.com/articles?search=";
    urlAddress =[urlAddress stringByAppendingString:inputText];
    NSURL *url= [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj= [NSURLRequest requestWithURL:url];
    [searchview loadRequest:requestObj];
    [[searchview scrollView] setBounces: NO];
    timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(loading) userInfo:nil repeats:YES];
    [TestFlight passCheckpoint:@"Voerde zoekopdracht uit"];

}
}

-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
[_message dismissWithClickedButtonIndex:(0) animated:YES];
NSString *inputText = [[_message textFieldAtIndex:0] text];
if( [inputText length] >= 1 )
{
    [searchview addSubview:indicator];
    NSString *urlAddress= @"http://www.sportdirect.com/articles?search=";
    urlAddress =[urlAddress stringByAppendingString:inputText];
    NSURL *url= [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj= [NSURLRequest requestWithURL:url];
    [searchview loadRequest:requestObj];
    [[searchview scrollView] setBounces: NO];
    timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(loading) userInfo:nil repeats:YES];
    [TestFlight passCheckpoint:@"Voerde zoekopdracht uit"];

}

[textField resignFirstResponder];
return NO; // We do not want UITextField to insert line-breaks.
}

Кто-нибудь знает, как на самом деле выполнить поиск, как только на клавиатуре появится кнопка возврата?

Заранее спасибо!

2 2

2 ответа:

Ваш класс должен реализовать UITextFieldDelegate, чтобы получить обратный вызов клавиатуры. Как предположил боррден, это можно сделать следующим образом

[message textFieldAtIndex:0].delegate = self;

Затем реализуем этот метод,

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    // Dismiss the alert view 
    // Initiate the search
    return YES;
}

Используйте этот метод UIAlertView. См. Apple docs

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated

Вызовите этот параметр в своем экземпляре представления предупреждений, когда это требуется, чтобы закрыть его программно. Вам потребуется сохранить message в качестве Ивара, чтобы получить к нему доступ, когда это потребуется.

Надеюсь, это поможет!

Это можно сделать в методе делегирования UITextField:

Ваш класс должен реализовать UITextFieldDelegate. set textField.delegate = self;

После реализации этого метода:

-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
  // here you can write what you want, for example search

  [textField resignFirstResponder];

  return NO; // We do not want UITextField to insert line-breaks.
}