2016-05-08 4 views
0

В моем приложении есть webView с веб-сайтом по умолчанию. Я вижу, что в некоторых приложениях на любой веб-странице есть адресная строка сверху, чтобы пользователь мог вводить новый адрес веб-сайта в любое время. Как мы можем сделать это? Благодаря!Как добавить адресную строку для iOS webView

ответ

0

Оставьте свой веб-сайт внутри UINavigationView, а затем установите его headerView как UITextField. Что-то вроде этого:

class WebsiteViewController: UIViewController, UITextFieldDelegate { 

    var addressField: UITextField? = nil 

    override public func viewDidLoad() { 
     super.viewDidLoad() 

     addressField = ({ 
      let field = UITextField() 
      field.autocorrectionType = UITextAutocorrectionType.No 
      field.delegate = self 
      field.addTarget(self, action: "addressChanged:", forControlEvents: .EditingChanged) 
      field.addTarget(self, action: "addressEditEnded:", forControlEvents: .EditingDidEnd) 
      field.sizeToFit() 
      return field 
     })() 
    } 

    override public func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 

     self.navigationItem.titleView = addressField 
    } 

    @IBAction func addressChanged(sender: UITextField) { 
     if let newString = addressField?.text where newString != searchString && newString.characters.count != 1 { 
      // do any filtering you might want to 
     } 
    } 

    @IBAction func addressEditEnded(sender: UITextField) { 
     // trigger the page load 
    } 
} 

Это должно охватывать предметы первой необходимости.

+0

Привет, Алекс, спасибо большое. Я работаю над этим. Один вопрос, два @IBAction func, addressChanged и адрес EditEnded, где я должен подключаться в Storyboard? Благодаря! – Mike

+0

Вам не нужно связывать их ни с чем, так как мы добавляем их в качестве целей вручную при создании addressField. Это просто конвенция, согласно которой любая функция, используемая в шаблоне Target/Action, обозначается как «@ IBAction», независимо от того, на самом деле она подключена с помощью nib/раскадровки или нет. Не стесняйтесь оставлять '@ IBAction', если вы обнаружите, что это более запутанно, чем полезно. –

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