//MARK:textfield delegate

//键盘的高度

func textFieldShouldBeginEditing(textField: UITextField) -> Bool {

//        print("开始编辑")

let fixedTop:CGFloat = kscreenHeight - 252

let convertRect:CGRect = loginScrollView.convertRect(textField.frame, toView: textField.superview)

let textFieledTop = convertRect.origin.y + textField.tt_height

var dispersion:CGFloat = 0.0

let offsetY:CGFloat = loginScrollView.contentOffset.y

if textFieledTop > fixedTop {

dispersion = textFieledTop - fixedTop - offsetY

var offset:CGPoint = loginScrollView.contentOffset

offset.y += dispersion

UIView.beginAnimations(nil, context: nil)

UIView.setAnimationDuration(0.3)

loginScrollView.contentOffset = offset

UIView.commitAnimations()

}

return true

}

func textFieldShouldReturn(textField: UITextField) -> Bool {

//        print("return")

if textField.isEqual(mailAccountTF) {

mailAccountTF.resignFirstResponder()

passwordTF.becomeFirstResponder()

}else if textField.isEqual(passwordTF){

hideKeyboardAction()//键盘退出

}

return true

}

func textFieldDidBeginEditing(textField: UITextField) {

//         print("进入编辑")

if textField.isEqual(mailAccountTF) {

mailAccountTF.becomeFirstResponder()

}else if textField.isEqual(passwordTF){

passwordTF.becomeFirstResponder()

}

}

func textFieldDidEndEditing(textField: UITextField) {

//         print("退出编辑")

hideKeyboardAction()//键盘退出

}

func textFieldShouldEndEditing(textField: UITextField) -> Bool {

//      print("开始退出编辑")

return true

}

//限制输入空格 键盘上的x键,输入一个删除一个

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

if string == " " {

return false

}

return true

}

func textFieldShouldClear(textField: UITextField) -> Bool {

return true

}

//MARK:scrollviewdelegate

func scrollViewWillBeginDragging(scrollView: UIScrollView) {

hideKeyboardAction() //通过滑动隐藏键盘

}

func hideKeyboardAction(){

mailAccountTF.resignFirstResponder()

passwordTF.resignFirstResponder()

}

swifttextfield代理方法的更多相关文章

  1. 通读AFN②--AFN的上传和下载功能分析、SessionTask及相应的session代理方法的使用细节

    这一部分主要研究AFN的上传和下载功能,中间涉及到各种NSURLSessionTask的一些创建的解析和HTTPSessionManager对RESTful风格的web应用的支持,同时会穿插一点NSU ...

  2. UITextField的代理方法:textField:shouldChangeCharactersInRange:replacementString

    原文链接:http://www.cnblogs.com/zhanggui/p/6101813.html 这个我在开发的过程中用到的次数最多,因此这里就简单对其进行分析.先看看Command+点击 弹出 ...

  3. iOS开发之巧用Block和代理方法结合来传值

    好久没写技术博客了,因为996的工作周期已经持续好几个月了.每天晚上回家都没有太多精力学习很多其他的东西,而且很多时候是接着完善工作的项目的模块开发.所以博客停歇了这么久,更新率也低了不少,今天补充一 ...

  4. UITableView的常用属性和代理方法

    以下是近期总结的关于tableView的一些属性和代理方法,以及一些常见的问题,现汇总如下,今后还会持续更新,请继续关注:   tableView 的头部和尾部视图属性: UISwitch *foot ...

  5. IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较

    //代码块与代替代理的设计方法 我就以在自定义视图中(非视图控制器,不能实现视图控制功能),通过代理和代码块两种方法分别实现视图的跳转,进行对比 首先自定义了一个视图,上面有一个已经注册了得BUtto ...

  6. iOS开发——网络篇——NSURLSession,下载、上传代理方法,利用NSURLSession断点下载,AFN基本使用,网络检测,NSURLConnection补充

    一.NSURLConnection补充 前面提到的NSURLConnection有些知识点需要补充 NSURLConnectionDataDelegate的代理方法有一下几个 - (void)conn ...

  7. UITableView表格视图、UITableView代理方法及应用

    一.基本知识点 UITableView表格视图,是一个可以滚动的界面(理解为垂直滚动的UIScrollView),可展示多行数据,没有行数的限制,只能有一列. 使用UITableView: 1.展示信 ...

  8. 弃用的异步get和post方法之代理方法

    #import "ViewController.h" #import "Header.h" @interface ViewController () <N ...

  9. IOS中tableView每组的头部控件、通过tableView的代理方法控制某一行的cell能否达到高亮选中状态

    一.tableView每组的头部控件 1.控件宽度默认就是tableView的宽度 2.控件高度由下面的代理方法决定 - (CGFloat)tableView:(UITableView *)table ...

随机推荐

  1. RPM方式安装MySQL5.5.48 (Aliyun CentOS 7.0 & 卸载MySQL5.7)

    环境是阿里云的CentOS7.0,更新了yum源(更新yum源请参考https://help.aliyun.com/knowledge_detail/5974184.html)之后先是尝试安装了MyS ...

  2. JavaScript(五)——插入地图

    代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  3. mysql online ddl

        大家知道,互联网业务是典型的OLTP(online transaction process)应用,这种应用访问数据库的特点是大量的短事务高并发运行.因此任何限制高并发的动作都是不可接受的,甚至 ...

  4. Javascript之旅——终点站:困惑的settimeout

    有时候结局不是很美好,但起码这也算是一种结局,这个系列的最后一篇settimeout,这是一个让人困惑的函数,也是我一直在吐槽JS的 原因,我们看不到JS的源代码,setimeout同样也是,从始到终 ...

  5. Java并发之Condition 并发同步控制

    package com.thread.test.thread; import java.util.PriorityQueue; import java.util.concurrent.locks.Co ...

  6. 对最近的RTP和H264学习进行总结整理-04.20

    虽然还是没有搞出来,但总感觉快了哈哈(哪来的自信) 1.RTP协议接受数据 #region 1-RTP协议变量声明 RTPSession session; RTPReceiver receiver; ...

  7. centos 安装maven

    1.环境: 操作系统:centos7 maven:apache-maven-3.3.9-bin.tar.gz 2.安装JDK(1.7) 3.安装maven mkdir -p /opt/usr/loca ...

  8. html5 如何进行自定义属性的定义和查询

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>T ...

  9. finereport普通报表的移动端自适应方案

    移动端报表呈现,首先要求的是页面随手机屏幕大小自动放缩(自适应),下面给出一个普通报表中的finereport移动端自适应方案,适用于finereport 7.1之前的版本. 首先,了解一下当前我们可 ...

  10. OpenStack 企业私有云的若干需求(7):电信行业解决方案 NFV

    自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云(Hybrid cloud)支持 主流硬件支持.云快速交付 ...