2016-07-16 3 views
0

В моем приложении у меня есть два textFields, щелкнув каждый textField, я могу выбрать места для загрузки из google places autocomplete.In пользовательский обработчик мне нужно назначить, в каком текстовом поле я должен показать результат. Если я нажму первое текстовое поле, значение, отображающее второе текстовое поле, наоборот. Я установил значения тега для обоих текстовых полей. Ниже мой полный код. Спасибо заранее.Как использовать автозаполнение с двумя текстовыми полями ios?

//when first textfield clicked 
- (IBAction)onLaunchClicked:(id)sender { 
     GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init]; 
     acController.delegate = self; 
     [self presentViewController:acController animated:YES completion:nil]; 

    } 

//when second textfield clicked 
- (IBAction)to_click:(id)sender { 
     GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init]; 
     acController.delegate = self; 
     [self presentViewController:acController animated:YES completion:nil]; 
    } 


// Handle the user's selection. 
    - (void)viewController:(GMSAutocompleteViewController *)viewController 
    didAutocompleteWithPlace:(GMSPlace *)place { 
     [self dismissViewControllerAnimated:YES completion:nil]; 
     // Do something with the selected place. 
     NSLog(@"Place name %@", place.name); 
     NSLog(@"Place address %@", place.formattedAddress); 
     NSLog(@"Place attributions %@", place.attributions.string); 

//have to set values in correct textfields 
    if (textfield.tag == 10001){ 
    from_txt.text=place.formattedAddress; 
    } 
    else { 
    to_txt.text= place.formattedAddress; 
     } 

} 

ответ

0

Вы должны объявить еще один экземпляр textField в вашем viewController как этот

UITextField *selTextField; 

Теперь установить ссылку на щелкнули TextField к selTextField в вашем обоих IBAction как этот

- (IBAction)onLaunchClicked:(id)sender { 
    self.selTextField = (UITextField*) sender; 
    GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init]; 
    acController.delegate = self; 
    [self presentViewController:acController animated:YES completion:nil]; 
} 

- (IBAction)to_click:(id)sender { 
    self.selTextField = (UITextField*) sender; 
    GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init]; 
    acController.delegate = self; 
    [self presentViewController:acController animated:YES completion:nil]; 
} 

сейчас в делетомном методе от GMSAutocompleteViewController

- (void)viewController:(GMSAutocompleteViewController *)viewController 
didAutocompleteWithPlace:(GMSPlace *)place { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
    // Do something with the selected place. 
    NSLog(@"Place name %@", place.name); 
    NSLog(@"Place address %@", place.formattedAddress); 
    NSLog(@"Place attributions %@", place.attributions.string); 

    //Set textField value 
    self.selTextField.text=place.formattedAddress; 
} 
+1

Нет, не объявляйте глобальным. Объявите переменную экземпляра. Это огромная разница. – rmaddy

+0

@rmaddy Отредактированный ответ для переменной экземпляра. –

+0

Его работа для меня. Спасибо @Nirav – Vignesh

Смежные вопросы