swift UI专项训练25 网址输入完毕事件

简介:    首先我们运行一下上一话中写好的程序看看有什么问题。我们发现点击return是没有反应的,这是因为我们之前设置了文本框为这个界面的第一反应者,我们要得到键盘的返回必须对键盘做一些操作。

   首先我们运行一下上一话中写好的程序看看有什么问题。



我们发现点击return是没有反应的,这是因为我们之前设置了文本框为这个界面的第一反应者,我们要得到键盘的返回必须对键盘做一些操作。从textfield入手,添加一个方法:

func textFieldShouldReturn(textField: UITextField) -> Bool {
       textField.resignFirstResponder()
        return true
        
    }

这是一个点击返回按钮输入框消失的方法,其中在返回之前我们要把textfield的第一反应者身份解除掉。现在我们需要把访问浏览器中的网址的方法加上,调用之前定义的loadurl方法,上面的方法修改如下:

func textFieldShouldReturn(textField: UITextField) -> Bool {
      loadurl(textField.text, web: web1)
        textField.resignFirstResponder()
        return true
        
    }

调用了loadurl方法,有两个参数,第一个是url,就是我们在搜索栏输入的网址,另一个是呈现的webview,只有一个,之前我们拖过来的web1。另外有一点要注意,完整的url需要有http://,但是我们输入的时候不想输入这部分,那就需要在loadurl方法中做些小改动,加上地址的前缀。

  func loadurl(url:String ,web:UIWebView){
    let aurl = NSURL(string: "http://" + url)
        let urlrq = NSURLRequest(URL: aurl!)
        web.loadRequest(urlrq)
    
    }

完整的控制器代码如下:

//
//  ViewController.swift
//  WebBrowser
//
//  Created by 陈刚 on 15/2/28.
//  Copyright (c) 2015年 cg. All rights reserved.
//

import UIKit

class ViewController: UIViewController,UIWebViewDelegate,UITextFieldDelegate{
    @IBOutlet weak var loading: UIActivityIndicatorView!
    @IBOutlet weak var textField1: UITextField!

    @IBOutlet weak var web1: UIWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    //载入网页请求
    func loadurl(url:String ,web:UIWebView){
    let aurl = NSURL(string: "http://" + url)
        let urlrq = NSURLRequest(URL: aurl!)
        web.loadRequest(urlrq)
    
    }
    //网页开始载入
    func webViewDidStartLoad(webView: UIWebView) {
        loading.startAnimating()
        UIApplication.sharedApplication().networkActivityIndicatorVisible = true
    }
    //网页结束载入
    func webViewDidFinishLoad(webView: UIWebView) {
        loading.stopAnimating()
        UIApplication.sharedApplication().networkActivityIndicatorVisible = false
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func textFieldShouldReturn(textField: UITextField) -> Bool {
      loadurl(textField.text, web: web1)
        textField.resignFirstResponder()
        return true
        
    }
}

现在来运行下看下效果:



输入一个访问时间比较长的网址,然后点击return按钮


可以看到在读取过程中我们设置的小齿轮和左上角系统自带的小齿轮都在转动提示进程



完成,可以正常使用了。

目录
相关文章
|
3月前
|
搜索推荐 BI 开发者
sap.ui.comp.smarttable.SmartTable 组件 beforeRebindTable 事件的用法
sap.ui.comp.smarttable.SmartTable 组件 beforeRebindTable 事件的用法
|
3月前
|
JavaScript
Vue给Element UI的el-popconfirm绑定按钮事件
Vue给Element UI的el-popconfirm绑定按钮事件
|
3月前
使用element clickoutside自定义指令事件,点击元素外部触发(element-ui/src/utils/clickoutside)
使用element clickoutside自定义指令事件,点击元素外部触发(element-ui/src/utils/clickoutside)
|
1月前
Element UI【实战范例】下拉选择 el-select 的 change 事件传入选中值+自定义参数
Element UI【实战范例】下拉选择 el-select 的 change 事件传入选中值+自定义参数
101 1
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
36 0
|
10月前
|
XML 数据格式
关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版
关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能4
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能4
36 0
|
存储 数据管理 数据库
CoreData 在 swift UI 中的使用
当谈到在 Swift UI 中进行本地数据持久化,Core Data 是一个强大且常用的解决方案。Core Data 是苹果提供的一种数据存储和管理框架,用于在应用程序中创建、读取、更新和删除数据。它提供了一个对象图管理器,可以将数据映射到对象,并提供了一种简化数据操作的方式。在本文中,我们将深入介绍 Core Data 在 Swift UI 中的使用。
CoreData 在 swift UI 中的使用
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
43 0
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能3
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能3
44 0

相关课程

更多