Swift Playgrounds自定义Web浏览器

时间:2017-02-02 12:44:53

标签: webkit swift-playground

我想尝试在我的iPad的swift playground中制作一个Web浏览器,每当我访问一个网站时,URL框就会消失,我不知道为什么。

import UIKit
import PlaygroundSupport
import WebKit

class TextFieldViewController : UIViewController, UITextFieldDelegate {
    var label : UILabel!
    var textField : UITextField!
    var button : UIButton!
    var buttonLabel : UILabel!

    func goToWebsite (url:String) {
        let xURL = url
        let secure = true

        let webView = WKWebView()
        PlaygroundPage.current.liveView = webView
        var website = URL(string:"https://\(xURL)")
        if secure {
            website = URL(string:"https://\(xURL)")
        }
        else {
            website = URL(string:"http://\(xURL)")
        }
        let msRequest = URLRequest(url:website!)
        webView.load(msRequest)
        webView.reload()
    }

    override func loadView() {
        // UI
        let view = UIView()
        view.backgroundColor = .white

        textField = UITextField()
        textField.borderStyle = .line
        textField.text = "google.com"

        button = UIButton()

        //goToWebsite(url: textField.text!)

        view.addSubview(textField)
        view.addSubview(button)

        label = UILabel()
        buttonLabel = UILabel()
        view.addSubview(label)
        view.addSubview(buttonLabel)

        self.view = view

        // Layout
        textField.translatesAutoresizingMaskIntoConstraints = false
        button.translatesAutoresizingMaskIntoConstraints = false
        label.translatesAutoresizingMaskIntoConstraints = false
        buttonLabel.translatesAutoresizingMaskIntoConstraints = false
        let margins = view.layoutMarginsGuide
        NSLayoutConstraint.activate([
            textField.topAnchor.constraint(equalTo: margins.topAnchor, constant: 0),
            button.topAnchor.constraint(equalTo: margins.topAnchor, constant: 20),
            textField.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
            button.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
            textField.trailingAnchor.constraint(equalTo: margins.trailingAnchor),
            button.trailingAnchor.constraint(equalTo: margins.trailingAnchor),

            label.leadingAnchor.constraint(equalTo: textField.leadingAnchor),
            buttonLabel.leadingAnchor.constraint(equalTo: button.leadingAnchor),
            label.topAnchor.constraint(equalTo: textField.bottomAnchor, constant: 10),
            buttonLabel.topAnchor.constraint(equalTo: button.bottomAnchor, constant: 30)
        ])

        label.text = "Search"

        // Events
        //textField.addTarget(self, action: #selector(updateLabel), for: UIControlEvents.editingChanged)
        button.addTarget(self, action: #selector(search), for: UIControlEvents.allTouchEvents)

        updateLabel()
    }

    func updateLabel() {
        //self.label.text = textField.text
        //goToWebsite(url: self.label.text!)
    }

    func search() {
        goToWebsite(url: self.label.text!)
        //loadView()
    }
}
PlaygroundPage.current.liveView = TextFieldViewController()

0 个答案:

没有答案