【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记35 UITextField文本框

简介: 本话来介绍UIKit框架中的组件UITextField。  UItextField(文本框)和Label看起来看像,但是文本框是可以编辑的。

本话来介绍UIKit框架中的组件UITextField。


  UItextField(文本框)和Label看起来看像,但是文本框是可以编辑的。在UI中使用文本框要注意,因为在模拟器上面输入文字是可以使用电脑键盘的,而在真机上,用户只能使用虚拟键盘,所以要注意。另外文本框中的文字大小、颜色等等也是可以设置的,就和在Label中一样。

  每次我们点击文本框开始输入内容的时候,文本框会成为页面上的first responder,这个时候虚拟键盘就会从底部滑出,配合我们的输入,就好像网页开发中的文本框获得了焦点一样。你可以使用方法becomeFirstResponder指定某个对象成为当前页面的first responder。如果要让键盘消失,我们只需要让文本框重新成为first responder,使用方法rsignFirstResponder。

  在我们输入结束的时候,点击键盘上的Return键(当然,这个键显示的文字是可以编辑的)会触发代理的方法textFieldShouldReturn,通常你会在这个方法中写上sender.resignFirstResponder以关闭虚拟键盘。


当编辑结束后也就是上面说的textField重新成为first responder时,会调用另一个代理方法textFieldDidEndEditing。

UITextField也可以作为一个UI的控制器,就像按钮一样,我们可以通过按钮来触发target和action,也可以通过一个UITextField来触发一些action和target,只不过触发的events和按钮是不同的。下面来看一下键盘:


键盘出现是因为文本框向接口UITextInputTraits协议发送消息,这个协议是UITextField类遵循的。你可以使用协议中的属性来进行设置,比如Return按钮显示的名称、密文输入等等,这些属性也可以在属性检查器中设置。


键盘滑出时可能会遮挡页面上的其他视图,我们需要让这些视图适应键盘的位置(尤其是文本框本身),为达到这个目的使用与键盘事件相关的NSNotification。之前我们已经接触过NSNotification了,如上例所示,在消息中心中接收这个NSNotification,然后在选择子对应的方法theKeyboardAppeared中捕获这个NSNotification然后从中提取userInfo中的信息进行相关处理。

下面是UITextField的一些其他属性,非常的有趣


比如你可以设置在文字输入很多的时候缩小字体以适应文本框的宽度,但是这个字体不能无限制缩小,如果adjustsFontSizeToFitSidth被设置为true,那么一定要设置minimumFontSize的尺寸。另外可以在文本框中可以加入一些辅助功能,比如说清空输入之类的。

目录
相关文章
|
数据安全/隐私保护 iOS开发
iOS提取数字(手机号) :文本框对粘贴内容进行手机号码提取
iOS提取数字(手机号) :文本框对粘贴内容进行手机号码提取
667 0
iOS提取数字(手机号) :文本框对粘贴内容进行手机号码提取
|
iOS开发
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
272 0
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
|
前端开发 iOS开发
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记3 Xcode、Auto Layout及MVC
   继续上一话中的计算器Demo,上一话讲到类必须被初始化,类中的属性也必须被初始化,所以你不能只声明而不给它一个处置,那么问题来了,我们从storyboard中拖拽的@IBOutlet为什么只有声明而不需要初始化呢,这是因为它的类型依旧是一个optional,在你初始化之前已经被赋值为nil了,这也就是为什么你不需要再初始化它的原因。
934 13
|
Unix iOS开发
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
  首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发。
1123 0
iOS UITextField 使用与方法解读
iOS UITextField 使用与方法解读
327 0
|
11月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
9月前
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
519 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
8月前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
288 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
10月前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
294 66

热门文章

最新文章