Objective-UI UITextField,UIButton,delegate程序启动流程

实际App中的登录界面并非由一个一个色块组成,而是由标签(UILabel),输入框(UITextField)和按钮(UIButton)组成.今天我们来看一下UITextField,通过今天的学习,希望我以及大家都能掌握UITextField的使用方法.我们进入主题.

UITextField(输入框):是控制文本输入和显示的控件,在App中UITextField出现频率也很高,iOS系统借助虚拟键盘实现输入,当点击输入框,系统会自动调出键盘,方便我们进一步操作.在你不需要输入,可以使用收回键盘的方法,收回弹出的键盘.

UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑,UITextField允许用户编辑文字(输入).在项目中有很多地方会用到UITextField,例如,输入用户名,密码,手机号,email等等.都是UITextField.按照惯例,我们还是要先知道如何创建UITextField. 和创建UILabel的例子很相似.

1.开辟空间并初始化(如果本类有初始化,使用自己的,否则就使用父类的).

UITextField *userNameTextField = [[UITextField alloc]initWithFrame:CGRectMake(100,100,190,30)];

2.设置文本显示,输入相关的属性

userNameTextField.borderStyle = UITextBorderStyleRoundedRect;

userNameTextField.placeholder = @"用户名";

3.添加到父视图,用以显示

[self.window addSubview:userNameTextField];

4.释放

[userNameTextField release];

UITextField类提供了许多控制输入的API,大家可以看看API,说到API,不得不和大家啰嗦两句,不管你懂不懂英语,都要想办法去了解API,在好的微博或者博客,所有的内容都是从API里得到的,只不过哪些能看明白API的人,把一手资料翻译出来,然后在写出来,我们看了之后就觉得很牛逼,所以如果希望在猿类生存,并且成为牛逼人物,那么API这个砍是一定要跨越的.

UITextField核心功能主要包含3个方面:文本显示,输入控制,外观配置.

文本显示:包括字体颜色,对齐方式,占位符等等.

text 要显示的文本内容 例如: textField.text = @"Jack";

textColor 文本内容的颜色 例如:textField.textColor = [UIColor redColor];

textAlignment 文本的对齐方式(水平方向) 例如:textField.textAlignment = NSTextAlignmentLest;

font 文本字体 例如:textField.font = [UIFont fontWithName:@"Helvetica-Bold" size:20];黑体加粗,20号字.

placeholder 占位字符串(没有任何输入时,给出的提示字符串) textField.placeholder = @"请输入用户名";

输入控制:密码模式,键盘样式,自定义键盘等等.

enabled 是否允许输入 textField.enabled = NO; 不允许输入,不弹出键盘

           textField.enabled = YES;默认是YES,允许输入

clearsOnBeginEditing 是否开始输入的时候清空输入框内容 textField.clearOnBeginEidting = YES; 清空

                           textField.clearOnBeginEiditing = NO;不清空

secureTextEntry  是否文字以圆点格式显示  textField.secureTextEntry = YES;密码模式

                     textField.secureTextEntry = NO;普通模式

keyboardType  弹出键盘的类型(枚举值)  textField.keyboardType = UIKeyboardTypeNumberpad;数字键盘

returnKeyType 键盘右下角return按钮类型(枚举值) textField.returnKeyType = UIReturnKeyNext;

inputView 自定义输入视图(默认是键盘)  textField.inputView = myInputView;

inputAccessoryView  输入视图上方的辅助视图(默认nil) textField.inputAccessView = myAccessView;

外观控制:包括边框样式,清楚按钮,辅助视图等.

borderStyle  边框样式(枚举值) textField.borderStyle = UITextBorderStyleRoundedRect;

clearButtonMode  清除按钮模式(枚举值) textField.clearButtonMode = UITextFieldViewModeAlways;总是显示清除按钮

leftView 输入框左视图 textField.leftView = leftView;

leftViewMode  左视图的显示模式 textField.leftViewMode = UITextFieldViewModeAlways;总是显示左视图

rightView 输入框右视图 textField.rightView = rightView;

rightViewMode 右视图的显示模式 textField.rightViewMode = UITextFieldViewModeAlways;总是显示右视图

#pragma mark ----UIButton----

UIButton(按钮):是影响用户点击的控件,在App中UIButton是出现频率很高的控件, UIButton与UILabel,UITextField侧重点不同,侧重于处理点击, 在项目中UIButton会经常使用,例如注册按钮,编辑按钮,分享按钮等等,基本上每个项目都离不开UIButton,所以打起17分的精神好好研究吧. 还是按照惯例,我们来看看如何创建UIButton.

1.创建Button对象(如果本类有初始化方法,使用自己,否则使用父类的).

UIButton *loginButton = [[UIButton buttonWithType:UIButtonTypeSystem];

2.设置按钮显示相关的属性

loginButton.frame = CGRectMake(30,200,60,30);

3.为按钮添加点击事件

[loginButton setTitle:@"登陆" forState:UIControlStateNormal];

[loginButton addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];

4.添加按钮到父视图

[self.window addSubview:loginButton];

UIButton从父类UIControl那继承了控制相关的方法,比如添加事件,移除事件等.

继承方式是:UIButton:UIControl:UIView

UIButton提供了外观控制的API 包括:标题,背景图片,前景图片等

外观控制包含很多方法,我们一一来看.

setTitle:forState  设置指定状态下的标题

[loginButton setTitle:@"登陆" forState:UIControlStateNormal];

titleForState 获取指定状态下的标题

NSString *normalTitle = [loginButton titleForState:UIControlStateNormal];

setTitleColor:forState: 设置指定状态下的标题颜色

[loginButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

titleColorForState: 获取指定状态下的标题颜色

UIColor *normalTitleColor = [loginButton titleColorForState:UIControlStateNormal];

setTitleShadowColor:forState: 设置指定状态下的标题隐隐颜色

[loginButton setTitleShadowColor:[UIColor redColor]forState:UIControlStateNormal];

titleShadowColorForState: 获取指定状态下的标题阴影颜色

UIColor *normalTitleShadowColor = [loginButton titleColorForState:UIControlStateNormal];

setImage:forState: 设置指定状态下的前景图片

[loginButton setImage:[UIImage imageNamed:@"login.png"] forState:UIControlStateNormal];

imageForState 获取指定状态下的前景图片

UIImage *normalImage = [loginButton imageForState:UIControlStateNormal];

setBackgroundImage:forState 设置指定状态下的背景图片

[loginButton setBackgroundImage:[UIImage imageNamed:@"login2.png"]forState:UIControlStateNormal];

backgroundImageForState: 获取指定状态下的背景图片

UIImage *normalBackgroundImage = [loginButton backgroundImageForState:UIControlStateNormal];

写了这么多的方法, 不管以后能不能都用上,现在最起码要混个脸熟,上面的一些有一些是经常用的.

#pragma mark ---delegate---

现在有一个需求就是让在TextField上写完的内容的虚拟键盘可以收回去.这个时候就需要使用delegate,下面我们来看看实现的方法.

点击键盘return按钮实现键盘回收的步骤:

1.将AppDelegate作为UITextField的delegate

2.AppDelegate.h文件接受UITextFieldDelegate协议

3.AppDelegate.m文件实现textFieldShouldReturn:方法

键盘回收代码:

Appdelegate.m

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{

  [textField resignFirstResponder];

  return YES;

}

以上就是实现的方法,但是UITextField不应该在类内部(.m文件)实现textFieldShouldReturn:方法. 因为有的时候,我们点return的时候,并不总是想回收键盘,例如:有两个输入框,第一个输入完成之后,用户点return按钮,将光标移动到第二个输入框(即:第二个输入框成为第一个响应者). 对于一个View来说,自己只负责触发事件,事件由外界实现,即delegate.

时间: 2024-10-22 15:39:31

Objective-UI UITextField,UIButton,delegate程序启动流程的相关文章

UI开发----基础视图和程序启动流程(delegate)

//  Create by 郭仔  2015年04月13日22:10:23 今天介绍的基础视图包括:UITextField.UIButton 一.定义UITextField: 创建UITextField与创建UILabel的步骤很相似.? 1.开辟空间并初始化(如果本类有初始化?方法,使?用?自?己的;否则 使?用?父类的).? 2.设置?文本显?示.输?入相关的属性? 3.添加到?父视图上,?用以显?示? 4.释放 UITextField * textField = [[UITextField

UI_02 基础视图、程序启动流程

?.UITextField UITextField(输?框):是控制?本输?和显?的控件 UITextField核?功能主要包含3个??: ?本显? 输?控制 外观配置 1.?本显? //    textField.text = @"你好"; //    textField.textAlignment = NSTextAlignmentCenter; textField.textColor = [UIColor blueColor]; textField.placeholder = @

UI基础-UITextField    UIButton   delegate

UITextField UITextField(输入框):是控制文本输入和显示的控件,在App中UITextField出现频率也比较高. Ios系统借助虚拟键盘实现输入,当点击输入框,系统会自动调出键盘,方便你进一步操作.在你不需要输入的时候,可以使用回收键盘的方法,收回弹出的键盘. UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑,UITextField允许用户编辑文字(输入) 文本显示 外观控制 UIButton UIButton(按钮):是响应用户点击的

Objective - C 学习笔记:程序启动原理

1.Info.plist常见的设置 * 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 * 在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist” * 项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist” * 项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关

iOS开发UI篇之16程序启动原理和UIApplication

原文  http://blog.csdn.net/u010927311/article/details/40145035 iOS 开发 UI 篇 — 程序启动原理和 UIApplication 一. UIApplication 1. 简单介绍 ( 1 ) UIApplication 对象是应用程序的象征,一个 UIApplication 对象就代表一个应用程序. ( 2 )每一个应用都有自己的 UIApplication 对象,而且是单例的,如果试图在程序中新建一个 UIApplication 

Objective - C 学习笔记:程序启动的完整过程

1. main函数 2. UIApplicationMain * 创建UIApplication对象 * 创建UIApplication的delegate对象 3.1 delegate代理开始处理(监听)系统事件  (没有storyboard) * 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法 * 在application:didFinishLaunchingWithOptions:中创建UIWindow * 创建和

iOS中程序启动流程

1.任何一个程序,无论是基于Mac OS 还是 iOS,程序都是从main.m文件的main函数开始执行的. #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]))

load View 流程 程序启动流程

基本流程: loadView / nib文件  来加载view到内存 -> viewDidLoad 函数进一步初始化这些view -> 内存不足时, 调用viewDidUnload 函数释放掉views -> 当需要使用view时又回到第一步, 如此循环 viewWillAppear 方法: 试图即将过渡到屏幕上时调用, 程序启动顺序: 1. main.m 是程序入口. 2. UIApplicationMain() 创建应用程序对象, 并且为此对象指定委托, 检测程序的执行, 同时开启事

app程序启动流程

1.执行main函数 2.执行UIApplication main函数 3.创建UIApplication对象(注意UIApplication是一个单例对象,[UIApplication sharedApplication]) 4.创建UIApplication代理 5.开启主运行循环(Runloop,)注意主运行循环是由系统开启,子运行循环需要手动开启 6.加载infor.plist文件配置信息,判断是否有mainstorybord,如果有就去加载mainstorybord 7.应用程序启动完