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按钮


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



完成,可以正常使用了。

目录
相关文章
|
8月前
|
JavaScript
Vue给Element UI的el-popconfirm绑定按钮事件
Vue给Element UI的el-popconfirm绑定按钮事件
|
8月前
使用element clickoutside自定义指令事件,点击元素外部触发(element-ui/src/utils/clickoutside)
使用element clickoutside自定义指令事件,点击元素外部触发(element-ui/src/utils/clickoutside)
|
3月前
|
Swift UED
Swift 中使用闭包处理事件
【10月更文挑战第20天】使用闭包来处理事件在 Swift 编程中是一种非常常见和有效的方式。它提供了简洁、灵活和高效的解决方案,使我们能够更轻松地实现各种交互功能。通过深入理解闭包的原理和应用方法,我们可以更好地利用闭包来处理各种事件,提升应用的用户体验和开发效率。
|
5月前
|
编解码 前端开发 vr&ar
从零开始的PICO教程(4)--- UI界面绘制与响应事件
这篇文章是PICO开发系列教程的第四部分,主要介绍了如何在PICO 4 VR环境中创建UI界面,包括Canvas和Panel的配置、UI元素的绘制、以及Button和Slider的事件响应绑定,并通过示例展示了数字增减和滑块功能的具体实现。
从零开始的PICO教程(4)--- UI界面绘制与响应事件
|
5月前
|
测试技术 Swift iOS开发
探索iOS自动化测试:使用Swift编写UI测试
【8月更文挑战第31天】在软件开发的海洋中,自动化测试是保证船只不偏离航线的灯塔。本文将带领读者启航,深入探索iOS应用的自动化UI测试。我们将通过Swift语言,点亮代码的灯塔,照亮测试的道路。文章不仅会展示如何搭建测试环境,还会提供实用的代码示例,让理论知识在实践中生根发芽。无论你是新手还是有经验的开发者,这篇文章都将是你技能提升之旅的宝贵指南。
|
6月前
Element UI【实战范例】下拉选择 el-select 的 change 事件传入选中值+自定义参数
Element UI【实战范例】下拉选择 el-select 的 change 事件传入选中值+自定义参数
1009 1
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
57 0
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能4
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能4
51 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
66 0

相关课程

更多