2.19 Accepting User Text Input with UITextField

来源:互联网 发布:python自动化运维开发 编辑:程序博客网 时间:2024/04/30 01:20

用UITextField来接收文本输入
只允许输入一行,只会显示一行,虽然在Interface Builder里面不能修改高度,但在代码里面却能修改高度。虽然高度是变高了,显示的行数却始终为一行。
--------------------
一般情况下是在UIViewController 实现 UITextFieldDelegate
textFieldShouldBeginEditing:
 当用户点一下试图输入内容时触发,返回YES允许用户输入,返回NO不运行用户输入。

textFieldDidBeginEditing:
 在textFieldShouldBeginEditing:返回YES之后就会触发这个,表示我准备好了,你开始输入吧。

textFieldShouldEndEditing:
 当用户想想把焦点用这里移开时触发。如果你返回NO,哈哈,他就移不开了。
  
textFieldDidEndEditing:
 当编辑完了,焦点移开后触发

textField:shouldChangeCharactersInRange:replacementString:
 当你想改变文本内容时触发,返回NO,用户将无法修改文本

textFieldShouldClear:
 每个Textfield 都有一个叉叉按钮,你可以通过setClearButtonMode:来显示叉叉按钮。当点击叉叉按钮时,是否清空文本。YES则清空,NO不清空。

textFieldShouldReturn:
 当按Return键时触发,你可以在这里去隐藏键盘。

--------------------

placeholder 当textField文本为空时显示,一般给用户起到一个提示的作用,比如说密码,用户名,在用户还没输入时,在“背景”给用户一个提示。

leftView, rightView 
leftViewMode, rightViewMode:
  在textField的左边或右边用一小块来显示leftView,rightView。同时你应该用leftViewMode,rightViewMOde指定什么时候显示出来,因为这个值默认是UITextFieldViewModeNever 不显示。

我试了下把leftView,rightView都赋值成同一个UILabel,不管是先赋值LeftView还是rightView,结果leftView有占据相应空间却没有显示出Label上的文本,RightView有显示Label上的文本。I don't known why,but you do, don't you?
另外如果赋值了rightView,则叉叉按钮就不显示出来了,我还是不知道为什么。

原创粉丝点击