当前位置: 首页 > news >正文

iOS开发之UITextField的使用详解

UITextField的使用详解

 

UITextField控件是开发中,使用频率比较高的控件了,那么有必要总结一下。

一、UITextField手动编写控件

 

UITextField  *txtAccount = [[UITextField alloc] initWithFrame:CGRectMake(10, 10,300, 30)];

    

    // 设置委托

    [txtAccount setDelegate:self];

    // 设置占位符

    [txtAccount setPlaceholder:@"账号"];

    // 设置文本对齐

    [txtAccount setTextAlignment:NSTextAlignmentLeft];

    // 设置样式

    [txtAccount setBorderStyle:UITextBorderStyleRoundedRect];

    // 加入view中

    [self.view addSubview: txtAccount];

    [txtAccount release];

二、UITextFieldDelegate委托

 

// 设置输入框,是否可以被修改

// NO-将无法修改,不出现键盘

// YES-可以修改,默认值 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

    return YES;

 

}

// 当点击键盘的返回键(右下角)时,执行该方法。

// 一般用来隐藏键盘

- (BOOL)textFieldShouldReturn:(UITextField *)textField{

    if (txtAccount == textField) {

[txtAccount resignFirstResponder];

}

return YES;

}

// 当输入框获得焦点时,执行该方法。 

- (void)textFieldDidBeginEditing:(UITextField *)textField{

    NSLog(@"textFieldDidBeginEditing");

 

}

// 指定是否允许文本字段结束编辑,允许的话,文本字段会失去first responder 

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{

    return YES;

 

}

 
// 文本框失去first responder 时,执行 

- (void)textFieldDidEndEditing:(UITextField *)textField{

     NSLog(@"textFieldDidEndEditing");

 

}

 

// 指明是否允许根据用户请求清除内容

- (BOOL)textFieldShouldClear:(UITextField *)textField{

    NSLog(@"textFieldDidEndEditing");

    return YES;

}

// 文本框的文本,是否能被修改 

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

    return YES;

 

}  

相关文章:

  • 使用生成器展平异步回调结构,JS篇
  • IPv4 地址分类
  • find命令无效处理记录
  • raft 分布式协议 -- mongodb
  • 把redis安装到ubuntu-14.04.1-server
  • [javaSE] GUI(Action事件)
  • 如何查看表和索引的统计信息
  • 持续交付:价值主张
  • pyside 移动窗口到屏幕中间
  • 二进制单位
  • I00023 鸡兔同笼解法二
  • [FTP]pureftp部署和优化
  • cookie的secure属性详解
  • GIT笔记
  • JQuery选择器大全
  • express如何解决request entity too large问题
  • Iterator 和 for...of 循环
  • java8 Stream Pipelines 浅析
  • Laravel核心解读--Facades
  • Linux CTF 逆向入门
  • mysql_config not found
  • nodejs调试方法
  • PHP那些事儿
  • Python打包系统简单入门
  • SwizzleMethod 黑魔法
  • ViewService——一种保证客户端与服务端同步的方法
  • Web设计流程优化:网页效果图设计新思路
  • 第2章 网络文档
  • 机器学习 vs. 深度学习
  • 前端学习笔记之观察者模式
  • 双管齐下,VMware的容器新战略
  • ​【已解决】npm install​卡主不动的情况
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #1015 : KMP算法
  • #android不同版本废弃api,新api。
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)c++ std::pair 与 std::make
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ./configure,make,make install的作用(转)
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .Net MVC + EF搭建学生管理系统
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .Net 路由处理厉害了
  • .NET序列化 serializable,反序列化
  • .NET值类型变量“活”在哪?
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @Pointcut 使用
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [<死锁专题>]