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 ответа:
Ваш класс должен реализовать
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
. settextField.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. }