UITextField/文本输入框

Xcode9学习笔记27 - 文本输入框控件的使用UITextField //添加文本框代理协议UITextFieldDelegate,使用协议中的方法,在完成文本框文字的输入后,隐藏系统键盘的显示 class ViewController: UIViewController,UITextFieldDelegate { override func viewDidLoad() { super.viewDidLoad() // Do 阅读详情

UITextFiled

(1)名称:文本输入框

(2)作用:用于用户输入文本信息(类似于C scanf)的UI视图

(3)继承于UIView



一.基础属性方法

下面列出属性方法的在工程中相关函数

1、创建textField

UITextField *textField=[[UITextField alloc] initWithFrame:CGRectMake(20, 100, self.view.frame.size.width-40, 50)];

2、设置边框样式

textField.borderStyle=UITextBorderStyleLine;

UITextBorderStyleNone,                无边框

UITextBorderStyleLine,                  线性边框

UITextBorderStyleBezel,

UITextBorderStyleRoundedRect,矩形边框

3、设置textField背景色    

textField.backgroundColor=[UIColor orangeColor];

4、设置textField文字

textField.text=@"文本框";

5、设置文字对齐方式

textField.textAlignment=NSTextAlignmentCenter;

6、文字垂直对齐

textField.contentVerticalAlignment=UIControlContentVerticalAlignmentTop;

UIControlContentVerticalAlignmentCenter     垂直居中

UIControlContentVerticalAlignmentTop         靠上,居顶部

UIControlContentVerticalAlignmentBottom   靠下,居底部

UIControlContentVerticalAlignmentFill          填充

7、设置字体

textField.font=[UIFont systemFontOfSize:40];

8、自适应宽度

textField.adjustsFontSizeToFitWidth=YES;

9、清空按钮(默认是从不清空的)

textField.clearButtonMode=UITextFieldViewModeWhileEditing;

UITextFieldViewModeNever,                从不清空

UITextFieldViewModeWhileEditing,    将要编辑,编辑的时候清空

UITextFieldViewModeUnlessEditing,   除了编辑,都清空

UITextFieldViewModeAlways              永远清空

10、设置密文显示,默认为NO

textField.secureTextEntry=NO;

11、设置键盘自动弹出,或者是,开始进入编辑状态

[textField becomeFirstResponder];

12、设置textField文字颜色

[textField setTextColor:[UIColor blueColor]];

13、(1)设置textField左边视图,默认不显示的

UIView *leftView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];

leftView.backgroundColor=[UIColor magentaColor];

textField.leftView=leftView;

左视图默认永不显示的

textField.leftViewMode=UITextFieldViewModeAlways;

UITextFieldViewModeNever,

UITextFieldViewModeWhileEditing,

UITextFieldViewModeUnlessEditing,

UITextFieldViewModeAlways

(2)设置textField右边视图,默认不显示的

右视图会覆盖清空按钮

UIView *rightView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];

rightView.backgroundColor=[UIColor redColor];

textField.rightView=rightView;

textField.rightViewMode=UITextFieldViewModeAlways;

14、设置占位符,通俗地讲,就是提示信息

textField.placeholder=@"用户名";

15、键盘样式,默认Default

textField.keyboardType=UIKeyboardTypeDefault;

UIKeyboardTypeDefault,

UIKeyboardTypeASCIICapable,

UIKeyboardTypeNumbersAndPunctuation,

UIKeyboardTypeURL,

UIKeyboardTypeNumberPad,                                                                        数字键盘,ipad

UIKeyboardTypePhonePad,                                                                           手机键盘,ipad

UIKeyboardTypeNamePhonePad,

UIKeyboardTypeEmailAddress,                                                                     可输入邮件地址的键盘

UIKeyboardTypeDecimalPad NS_ENUM_AVAILABLE_IOS(4_1),

UIKeyboardTypeTwitter NS_ENUM_AVAILABLE_IOS(5_0),

UIKeyboardTypeWebSearch NS_ENUM_AVAILABLE_IOS(7_0),

UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,

16、键盘返回键的样式,默认Default,只有在键盘样式为DEfault的情况下才有效;

textField.returnKeyType=UIReturnKeyGoogle;

UIReturnKeyDefault,

UIReturnKeyGo,

UIReturnKeyGoogle,

UIReturnKeyJoin,

UIReturnKeyNext,

UIReturnKeyRoute,

UIReturnKeySearch,

UIReturnKeySend,

UIReturnKeyYahoo,

UIReturnKeyDone,

UIReturnKeyEmergencyCall,

17、自定义键盘

UIView *inputView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200)];

inputView.backgroundColor=[UIColor orangeColor];

textField.inputView=inputView;

[inputView release];

18、自定义二级键盘

UIView *inputAccesoryView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 40)];

inputAccesoView.backgroundColor=[UIColor greenColor];

UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, inputAccesoryView.frame.size.width, 40)];

label.text=@"二级键盘";

[inputAccesoryView addSubview:label];

[label release];

textField.inputAccessoryView=inputAccesoryView;

[inputAccesoryView release];

[self.view addSubview:textField];

[textField release];



二.协议中的方法

1、(即将)开始进入编辑

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

2、返回事件的回调方法

- (BOOL)textFieldShouldReturn:(UITextField *)textField

关闭键盘

[textField resignFirstResponder];

3、将要结束编辑

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField

4、将要清空

- (BOOL)textFieldShouldClear:(UITextField *)textField

5、已经进入编辑状态

- (void)textFieldDidBeginEditing:(UITextField *)textField

6、结束编辑状态

- (void)textFieldDidEndEditing:(UITextField *)textField

7、将要改变文字的时候

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string




三.监听键盘的收起和弹出

引用:UIKeyboardAnimationDurationUserInfoKey

hideKeyboardNotification隐藏

showKeyboardNotification 显示

1、创建通知中心

- (void)createNoti

{

    (1)定义一个通知中心

    NSNotificationCenter *nc=[NSNotificationCenter defaultCenter];

    (2)添加通知中心的监听

    [nc addObserver:self selector:@selector(showKeyBoardNotification:) name:UIKeyboardWillShowNotification object:nil];

    [nc addObserver:self selector:@selector(hideKeyBoardNotification:) name:UIKeyboardWillHideNotification object:nil];

}

2、键盘将弹出的通知

- (void)showKeyBoardNotification:(NSNotification*)notification

{

   (1)获取弹出键盘

    NSDictionary *userInfo=notification.userInfo;

    NSLog(@"键盘弹出:%@",userInfo);

    NSTimeInterval duration=[[userInfo objectForKey:@"UIKeyboardAnimationDurationUserInfoKey"] floatValue];

  (2)启动动画

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:duration];

    UITextField *textField=(UITextField*)[self.view viewWithTag:11];

    textField.frame=CGRectMake(20, 20, self.view.frame.size.width-40, 40);

    [UIView commitAnimations];

}

3、键盘收起的监听方法

- (void)hideKeyBoardNotification:(NSNotification*)notification

{

    (1)获取键盘弹出的数据

    NSDictionary *userInfo=notification.userInfo;

    NSLog(@"键盘收起:%@",userInfo);

    NSTimeInterval duration=[[userInfo objectForKey:@"UIKeyboardAnimationDurationUserInfoKey"] floatValue];

    (2)启动动画

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:duration];

    UITextField *textField=(UITextField*)[self.view viewWithTag:11];

    textField.frame=CGRectMake(20,100, self.view.frame.size.width-40, 40);

    [UIView commitAnimations];

}




四、扩展:MVC模式

【注】iOS程序采用MVC设计模式为基础设计模式。即一个程序个构成,由模型,视图,控制器构成

1、模型(Model):非UI部分,数据的储存与管理

2、视图(View):UI部分,用于显示界面,与用户交互,包括接收触发事件,显示数据内容

3、控制器(Controller):本身不显示,用于管理视图,将视图部分,和模型部分链接起来。原则上视图不直接访问数据。

【注】使用MVC架构,视图不直接访问数据,可以便于修改,降低开发和维护成本。



五、例题:记录输入的内容,并保存重新显示到输入栏上




【白话系列】倍增算法 【序言】         我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最形象的方式来纪念它。 【一】         从前,有一只可爱得不得了的小白兔,它想从 阅读详情

相关推荐

ANSYS Workbench实战:用网格自适应搞定超弹性橡胶大变形仿真(附避坑命令流)

本文深入探讨了ANSYS Workbench中超弹性橡胶大变形仿真的网格自适应技术,重点解析了混合U-P单元的应用、非线性自适应网格的实战技巧及材料模型选择的注意事项。通过具体案例和命令流示例,帮助工程师有效解决橡胶仿真中的收敛问题和网格畸变挑战,提升仿真精度和效率。

weixin_42666036的博客 303

UI学习——UITextField控件

本文将介绍UITextField控件和UITextFieldDelegate协议

m0_73974920的博客 2194

风二西CTF流量题大集合-刷题笔记|基础题(1)

部分题目已包含脚本和解题视频,但更建议自行分析和手搓脚本。

zerorzeror的博客 2765

UITextField 详解

//初始化textfield并设置位置及大小   UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];   //设置边框样式,只有设置了才会显示边框样式    text.borderStyle = UITextBorderStyleRoundedRect;

xiezhenxiang的专栏 1081

嵌入式开发新思路:用QP框架5步搞定状态机设计(附STM32移植指南)

本文介绍了在嵌入式开发中使用QP框架进行状态机设计的新思路。通过对比传统RTOS与事件驱动模型的差异,详细解析了QP框架的核心组件与优势,并提供了基于STM32的5步实战指南,包括环境搭建、状态机实现与性能优化技巧,帮助开发者从顺序阻塞思维转向高效的事件驱动架构。

milk5的博客 900

Java本地AI推理初体验:Jlama+LangChain4j构建离线问答系统

Jlama 是专为 Java 生态设计的现代化大型语言模型(LLM)推理引擎,旨在让开发者无需依赖外部服务即可直接在 Java 应用中运行本地化模型推理。本文将结合Jlama + langchain4j 实现一个本地可运行的简单问答Demo。

2501_92589102的博客 407

UITextField的一些属性总结

1.初始化textfield并设置位置及大小UITextField *field = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];2.设置边框样式,只有设置了才会显示边框样式,默认是没有边框的field.borderStyle = UITextBorderStyleRoundedRect;typedef enum {U

feng_hui_lu_zhuan的博客 329

mongoDB 数据莫名其妙的没了

问题 之前没有接触过mongoDB,然后接手一个项目使用的是MongoDB,我就跟着网上的教程搭建一个MongoDB的服务,并运行起来。 一开始没有啥问题,成功的把服务与MongoDB都启动以来,运行也没有问题。但是过了几天,我再次打开时发现,以前的数据神奇的消失了。我还在想,是有什么定时清除的么,还是什么原因导致崩了然后数据就被清理了。 查找原因 第一次遇到我没有在意,重启了一下MongoDB,...

技术熊的博客小窝 1万+

UITextField的整理

UITextField: UITextField是常用的输入控件,控制文本输入和显示的控件,允许用户编辑(输入) 1.初始化textfield并设置位置及大小   UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];   2.设置边框样式,只有设置了才会显示边框样式 

NLF2015的博客 383

HWSD全球土壤数据下载处理

下载地址: http://www.fao.org/soils-portal/soil-survey/soil-maps-and-databases/harmonized-world-soil-database-v12/en/

江北20190411的博客 3万+

UMI——斯坦福刷盘机器人:通过手持夹爪革新数据收集方式,且使用视觉SLAM和Diffusion Policy预测动作

没想到今年年初的斯坦福mobilealoha的热度刚过,而到今年2月的下旬,斯坦福另一个团队又推出了UMI刷盘机器人,且这两个团队还互相认识、还在一块共同切磋(顺带小小感叹一下,斯坦福的氛围是真好而且真高产)斯坦福UMI刷盘机器人其与mobile aloha(以及AirExo: Low-Cost Exoskeletons for Learning Whole-Arm Manipulation in the Wild)最大的不同在于其收集数据处理的非真实的机器人,而是一个手持夹持器(从而大幅降低成本)

u013250861的博客 1357

iOS中UITextField使用

UITextField同样也是在ios中使用频率最高的控件之一,他可以用来接受输入的文本内容,当点击时可以借助虚拟键盘来操作文本内容等信息. UITextField和UIlable相比 UIlable只能显示文本 UITextField 能显示文本,也能接受文本. 1:创建一个UITextField 和label的创建方法一样. 第一步:开辟内存空间,并初始化 /...

whuizhou的专栏 2174

Kong API Gateway 配置与深入

Kong是一个开源的、高性能的API网关,提供了一种简单易用的服务间路由、流量管理和安全防护方案,其最初起源于Nginx Inc.,但后迁移至Apache Software Foundation。Kong支持RESTful、GraphQL、TCP/UDP等协议,可与AWS Lambda、Azure Functions、Google Cloud Functions等云函数平台集成。其主要功能包括:服务发现与负载均衡、请求代理、身份认证与授权、缓存、日志记录、监控指标、灰度发布、多种插件等。

AI天才研究院 2283

ios UITextField 文本输入框的用法

昨天的视图的动画是不是很有趣,那么今天我们来学习下文本输入框,这个在开放中经常用到,我们注册输入密码什么的都要用到。等学会了这个,我们就可以尝试做一个nice的界面,这个我会放在下一个博客,希望大家好好学。 那么今天我们来创建一个新的工程: - (BOOL)application:(UIApplication *)application didFinishLaunchingWith

wq820203420的专栏 875

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

UITextField、UITextView--文本输入框,以及文本输入域

控件都和w'n'g

转身扭到脖子的专栏 808

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

UITextField 输入框

UITextField提供了一个可被编辑的label, 与相应的输入等一些列功能. 对于UITextField的使用, 主要由对其但输入框视图外观的设置, 和键盘的设置.

rare_ice的博客 480

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

UITextField文本输入框

【方法】 //背景文字 @property(nonatomic,copy) NSString *placeholder; //正文 @property(nonatomic,copy) NSString *text; //设置文本框的边框风格,可以设置为圆角矩形边框风格,默认风格为None @property(nonatom

iOS_liang的博客 378

自适应键盘,自带隐藏键盘的输入框(UITextField)

在本篇博客中,我们演示了简单的实现方式,已经能够满足大部分需求。进一步优化的话,我们可以定制输入框与键盘之间的距离,还可以自动获取需要上移的视图等功能,这些都可以根据具体需求进行定制和扩展。

weixin_39339407的博客 1230

UITextField(输入框)

定义输入框 UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 100, 100, 40)];  textField.backgroundColor = [UIColor yellowColor]; [self.window addSubview:textField]; [textF

scySKY的博客 346

如何打造会动的输入框:MMTextFieldEffects自定义UITextField占位符的5个核心技巧

你是否注意过一些应用的登录页:点击输入框的瞬间,占位符缩小上移、下划线自己"画"了出来?MMTextFieldEffects 就是一个 iOS 开源项目,它用自定义 UITextField 实现了 7 种经典占位符动画(Ichiro、Juro、Kuro、Minoru、Nariko、Yoshiko、Nao),让你用 5 个技巧就能做出同款"会动的输入框"。 [![MMTextFieldEffect

gitblog_00031的博客 634

IOS 单行文本输入框 UITextField 使用

UITextField 继承 UIControl 类,只支持单行输入和显示,可输入密码类型。支持实现代理 UITextFieldDelegate 属性 名称 类型 说明 默认值 text NSString 文本输入值 textColor UIColor 文本颜色 UIFont UIFont 文本大小 textAlignment NSTextAlignment 文本方向 NSLeftTextAlignment borderStyle UITextBorderStyle.

qq_33490514的博客 1139

uitextfield 键盘类型_IOS 单行文本输入框 UITextField 使用

UITextField 继承 UIControl 类,只支持单行输入和显示,可输入密码类型。支持实现代理 UITextFieldDelegate属性名称类型说明默认值textNSString文本输入值textColorUIColor文本颜色UIFontUIFont文本大小textAlignmentNSTextAlignment文本方向NSLeftTextAlignmentborderStyleUI...

weixin_39649611的博客 298

swift 中UITextField 的详细介绍

1、文本输入框的创建##### let textField = UITextField(frame: CGRect(x:10, y:60, width:200, height:30)) // let textField = UITextField() // textField.frame = CGRect(x:20,y:30,width:100,height:30) //设置边框样式为圆角矩形...

qq_34787935的博客 1414

Swift - 文本输入框(UITextField)的用法

Swift - 文本输入框(UITextField)的用法 Swift - 文本输入框(UITextField)的用法

qq_41240287的博客 1175

UIAlertView上添加输入框UITextField

UIAlertView上添加输入框UITextField 1、初始化UIAlertView,并添加UITextField  UIAlertView *exitAlertView=[[UIAlertView alloc]initWithTitle:@"退出原因" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTi

shiningchen322的博客 939

iOS入门-13UITextField输入框

概述 UITextField输入框的基本使用 iOS中键盘的操作都由UITextField来操作(和Android略有不同) 重点: 输入框输输入内容前后回调时机; 键盘的控制(键盘显示类型;键盘的显示和隐藏等); 输入内容的获取; 示例代码 ViewController.h #import <UIKit/UIKit.h> //注意UITextFieldDelegate代理 @...

gongxiaoou的博客 345
上一篇: UIView/视图&&UIImageView/图片视图
下一篇: UIViewController/视图控制器
TomLD
博客等级 码龄11年 1粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值