//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. js 获取当前系统时间

    Js获取当前日期时间及其它操作 var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年 ...

  2. ADO。Net(二)——防止SQL注入攻击

    规避SQL注入 如果不规避,在黑窗口里面输入内容时利用拼接语句可以对数据进行攻击 如:输入Code值 p001' union select * from Info where '1'='1 //这样可 ...

  3. jqGrid 最常用的属性和事件,供平时参考(转)

    [html] <html> ... <table id="list1"></table> <div id="pager1&quo ...

  4. 初步认识Hive

    初步认识Hive hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学习 ...

  5. windows环境下无法引用全局安装的模块问题

    问题 在node项目中,往往需要安装一些依赖的包,通常我们采取全局安装的方式,来减少一些包重复安装带来的烦恼. 但是全局安装后出现无法使用的情况,可能是你NODE_PATH没有设置或者不正确造成的. ...

  6. Python序列化之json与pickle

    1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

  7. Linux磁盘管理之逻辑结构主引导扇区02

    一.主引导扇区 主引导扇区位于硬盘的0磁道0柱面1扇区,共占用了63个扇区,但实际上只使用了512字节,由三大部分组成: 1.主引导记录MBR(Master Boot Record):占446字节. ...

  8. js中正则表达式的模式匹配

    参考Javascript权威指南(第6版)第10章 1.正则表达式的定义 正则表达式有两种定义方法,通常使用直接量方式. (1)直接量 var pattern = /\d$/; var pattern ...

  9. windows下nodejs环境配置

    一.下载 去nodejs下载node.msi安装文件包,里面包含了node.js和npm: 双击node.msi就行了,选择安装路径和npm: 二.设置环境变量 [新版本都不需要设计环境变量了,软件会 ...

  10. [转]ng-grid

    本文转自:http://angular-ui.github.io/ui-grid/ Getting Started Steps for getting started (example on righ ...