2016-05-08 12 views
0

私のアプリには、デフォルトのウェブサイトgoogleを持つwebViewがあります。私は任意のウェブページ上のいくつかのアプリでは、ユーザーがいつでも新しいウェブサイトのアドレスを入力できるように上部にアドレスバーがあることがわかります。どうすればそれをすることができますか?ありがとう!iOS webViewのアドレスバーを追加するには

答えて

0

ウェブビューをUINavigationViewに入れて、headerViewUITextFieldに設定します。このようなもの:

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

こんにちはアレックス、ありがとう。私はそれに取り組んでいます。 1つの質問、2つの@IBAction関数、addressChangedと住所EditEnded、Storyboard内でどこに接続すればよいですか?ありがとう! – Mike

+0

addressFieldを作成したときにターゲットとして手動で追加するので、何も接続する必要はありません。ターゲット/アクションパターンで使用されている関数は、実際にペン先/ストーリーボードを使用しているかどうかに関わらず、 '@ IBAction'として指定されているというのは、一部の人が従うという規則です。あなたが助けてくれるよりも混乱していることがわかったら、 '@ IBAction'を自由にしておきましょう。 –

関連する問題