Objective-C Learning Notes - UITextField and UITextView
UITextField Attribute that often used:
borderStyle;
background;
backgroundColor;
clearButtonMode;
UITextFieldViewModeAlways;
UITextFieldViewModeNever;
UITextFieldViewModeWhileEditing;
UITextFiledViewModeUnlessEditing;
代码生成UITextField:
//初始化 UITextField *textField1 = [[UITextField alloc] init]; //背景色 textField1.backgroundColor = [UIColor blackColor]; //加个图 UIImage *imageT = [UIImage imageNamed:@"0109_1.jpg"]; //拉伸一下 UIImage *stretchableWhitePaper = [imageT stretchableImageWithLeftCapWidth:20 topCapHeight:50]; //加载图片到输入框 textField4.background = stretchableWhitePaper; //显示清楚按钮的模式 textField1.clearButtonMode = UITextFieldViewModeNever; //字体颜色 textField1.textColor = [UIColor redColor]; //文本对齐方式 textField1.textAlignment = NSTextAlignmentCenter; //字体大小 textField1.font = [UIFont systemFontOfSize:36]; //绘制 textField1.frame = CGRectMake(20, 20, 280, 30); //边框类型 textField1.borderStyle = UITextBorderStyleLine; //内容文本 textField1.text = @"11111111111"; //这啥? textField1.returnKeyType = UIReturnKeyNext; //添加到当前视图 [self.view addSubview:textField1];
UITextView
Base Attributes:
Text
Placeholder
Background
Disabled
Align
Border Style
Clear Button
Never appears
Appears while edting
Appears unless edting
Is always visible
Clear when edting begins
Text Color
Font
Min Font Size
Adjust To Fit
Captitalization
None
Words
Sentences
All Characters
Correction
Keyboard
Return Key
Auto-enable Return Key
Secure
textColor
font
editable
textAlignment
UITextAlignmentRight
UITextAlignmentCenter
UITextAlignmentLeft
动态实现:
#import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize textView; - (void)viewDidLoad { [super viewDidLoad]; //new 一个实例 textView = [[UITextView alloc] init]; //frame设置 textView.frame = self.view.bounds; //Mask大小自动 textView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; //不可编辑设置 //textView.editable = NO; //字体大小 textView.font = [UIFont systemFontOfSize:32]; //内容 textView.text = @"edit this!"; //加载 [self.view addSubview:textView]; // Do any additional setup after loading the view, typically from a nib. } //加载 view 前干的事情 - (void)viewWillAppear:(BOOL)animated{ //log 一下 NSLog(@"viewWillAppear!"); //调用 super 对应方法罗 [super viewWillAppear:animated]; //显示 navigationBar [self.navigationController setNavigationBarHidden:NO animated:YES]; [self.navigationController setToolbarHidden:NO animated:YES]; } //加载 view 之后干的事情 - (void)viewDidAppear:(BOOL)animated{ //log 一下 NSLog(@"viewDidAppear!"); //调用 super 对应的方法罗 [super viewDidAppear:animated]; //调用 textViewDidEndEditing 方法 [self textViewDidEndEditing:textView]; } //view 隐藏之后干的事情 -(void)viewDidDisappear:(BOOL)animated{ //调用 super 对应的方法 [super viewDidDisappear:animated]; //把 textView 注册为 firstResponser [textView resignFirstResponder]; } // - (void)textViewDidBeginEditing:(UITextView *)textView_{ static const CGFloat kKeyboardHeight = 216.0; //设置navigationBar 左侧按键为[完成] self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(donePush)]; //动画设置? [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.3]; //缩小UITextView以免被键盘遮挡 CGRect textViewFrame = textView_.frame; textViewFrame.size.height = self.view.bounds.size.height - kKeyboardHeight; textView_.frame = textViewFrame; //工具条上移,妈的太机智了 CGRect toolbarFrame = self.navigationController.toolbar.frame; toolbarFrame.origin.y = self.view.window.bounds.size.height - toolbarFrame.size.height - kKeyboardHeight; self.navigationController.toolbar.frame = toolbarFrame; [UIView commitAnimations]; } //同上差不多 -(void)textViewDidEndEditing:(UITextView *)textView_{ //按键设置为[编辑] self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editDidPush)]; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.3]; //恢复UITextView的尺寸 textView_.frame = self.view.bounds; //恢复工具条的位置 CGRect toolbarFrame = self.navigationController.toolbar.frame; toolbarFrame.origin.y = self.view.window.bounds.size.height - toolbarFrame.size.height; self.navigationController.toolbar.frame = toolbarFrame; [UIView commitAnimations]; } //两个尾巴方法 -(void)editDidPush{ [textView becomeFirstResponder]; } -(void)donePush{ [textView resignFirstResponder]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
失败了别打我╮(╯﹏╰)╭……不知道为啥NavigationBar显示不出来,我需要找找源码看看……