0
私のアプリには、デフォルトのウェブサイトgoogleを持つwebViewがあります。私は任意のウェブページ上のいくつかのアプリでは、ユーザーがいつでも新しいウェブサイトのアドレスを入力できるように上部にアドレスバーがあることがわかります。どうすればそれをすることができますか?ありがとう!iOS webViewのアドレスバーを追加するには
私のアプリには、デフォルトのウェブサイトgoogleを持つwebViewがあります。私は任意のウェブページ上のいくつかのアプリでは、ユーザーがいつでも新しいウェブサイトのアドレスを入力できるように上部にアドレスバーがあることがわかります。どうすればそれをすることができますか?ありがとう!iOS webViewのアドレスバーを追加するには
ウェブビューを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
}
}
これは必須事項です。
こんにちはアレックス、ありがとう。私はそれに取り組んでいます。 1つの質問、2つの@IBAction関数、addressChangedと住所EditEnded、Storyboard内でどこに接続すればよいですか?ありがとう! – Mike
addressFieldを作成したときにターゲットとして手動で追加するので、何も接続する必要はありません。ターゲット/アクションパターンで使用されている関数は、実際にペン先/ストーリーボードを使用しているかどうかに関わらず、 '@ IBAction'として指定されているというのは、一部の人が従うという規則です。あなたが助けてくれるよりも混乱していることがわかったら、 '@ IBAction'を自由にしておきましょう。 –