2016-04-08 12 views
0

GMSAutocompleteFetcher görüntüleyen bir Google otomatik tamamlama sahibim var.iOS'ta GMSAutocompleteFetcher kullanırken seçim nasıl yapılır?

import UIKit 
    import GoogleMaps 

    class FetcherSampleViewController: UIViewController { 

     var textField: UITextField? 
     var resultText: UITextView? 
     var fetcher: GMSAutocompleteFetcher? 

     override func viewDidLoad() { 
     super.viewDidLoad() 
     let tap = UITapGestureRecognizer(target: self, action: "handletap:") 
     self.view.backgroundColor = UIColor.whiteColor() 
     self.edgesForExtendedLayout = .None 

     // Set bounds to inner-west Sydney Australia. 
     let neBoundsCorner = CLLocationCoordinate2D(latitude: -33.843366, 
      longitude: 151.134002) 
     let swBoundsCorner = CLLocationCoordinate2D(latitude: -33.875725, 
      longitude: 151.200349) 
     let bounds = GMSCoordinateBounds(coordinate: neBoundsCorner, 
      coordinate: swBoundsCorner) 

     // Set up the autocomplete filter. 
     let filter = GMSAutocompleteFilter() 
     filter.type = .Establishment 

     // Create the fetcher. 
     fetcher = GMSAutocompleteFetcher(bounds: bounds, filter: filter) 
     fetcher?.delegate = self 

     textField = UITextField(frame: CGRect(x: 5.0, y: 0, 
      width: self.view.bounds.size.width - 5.0, height: 44.0)) 
     textField?.autoresizingMask = .FlexibleWidth 
     textField?.addTarget(self, action: "textFieldDidChange:", 
      forControlEvents: .EditingChanged) 

     resultText = UITextView(frame: CGRect(x: 0, y: 45.0, 
      width: self.view.bounds.size.width, 
      height: self.view.bounds.size.height - 45.0)) 
     resultText?.backgroundColor = UIColor(white: 0.95, alpha: 1.0) 
     resultText?.text = "No Results" 
     resultText?.editable = false 
     resultText?.addGestureRecognizer(tap) 
     self.view.addSubview(textField!) 
     self.view.addSubview(resultText!) 
     } 

     func textFieldDidChange(textField: UITextField) { 
     fetcher?.sourceTextHasChanged(textField.text!) 
     } 
     func handletap (sender: UITapGestureRecognizer){ 
     print("I dont know what to do here") 

     } 
    } 

    extension FetcherSampleViewController: GMSAutocompleteFetcherDelegate { 
     func didAutocompleteWithPredictions(predictions: [GMSAutocompletePrediction]) { 
    let resultsStr = NSMutableAttributedString() 
    for prediction in predictions { 
     resultsStr.appendAttributedString(prediction.attributedPrimaryText) 
     resultsStr.appendAttributedString(NSAttributedString(string: "\n")) 
    } 
    resultText?.attributedText = resultsStr 
} 

     func didFailAutocompleteWithError(error: NSError) { 
     resultText?.text = error.localizedDescription 
     } 
    } 
: Kod Google developer website gelen ancak sorun ben kullanıcı sözler yer kimliği olarak görüntülemek için TextView'un etkilerinin görülmesi hemen sonra seçimi nasıl işleneceğini bir yol bulamıyorum olduğunu şimdiye kadar bu benim kodudur

UITapGestureRecognizer'ı kullanıyorum ancak ne yapmam gerektiğini bilmiyorum. Bana yardım ederseniz minnettarım :)

cevap

0

Tüm tahminler sadece bir metin alanındaki yeni satır sınırlanmış satırlar olduğundan, kullanıcının hangisinin üzerinde çalıştığını söylemek zor olacak.

Bir UITextView yerine, bir UITableView kullanın ve tahmin başına bir satırınız var. Bu, hangi tahminin seçildiğini tespit etmeyi kolaylaştıracaktır.

İlgili konular