iOS中的UITextView
2015-09-18 17:38
429 查看
#import "TextViewController.h" @interface TextViewController ()<UITextViewDelegate> @end @implementation TextViewController /* UITextView文本视图相比与UITextField直观的区别就是UITextView可以输入多行文字并且可以滚动显示浏览全文。常见UITextView使用在APP的软件简介、内容详情显示、小说阅读显示、发表空间内容输入、说说文本框、评论文本框等。 UITextView的使用有它本身的代理方法,也有继承于父类的方法。本身的方法有从开始编辑到结束编辑的整个过程的监听,继承的方法主要是继承于UIScrollView的方法,因为关于滚动的控制都属于UIScrollView的。 */ - (void)viewDidLoad { [super viewDidLoad]; //初始化 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 100, 220, 100)]; textView.tag = 100; //背景颜色 textView.backgroundColor= [UIColor yellowColor]; //配置文本属性 //1. 设置textView的文本 textView.text = @"Where there is a will, there is a way!"; // 实际上,UITextView的文本默认就是居上显示的,出现上面的情况很多都是因为使用了navigationController让scrollView自动适应屏幕造成的。(UITextView继承自UIScrollView)。 if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)]) { self.automaticallyAdjustsScrollViewInsets = NO; } //2. 设置文字对齐方式 (默认是 NSTextAlignmentLeft) textView.textAlignment = NSTextAlignmentLeft; //3. 设置文字的字体和大小 (默认字体是 17 点 Helvetica 普通字体) textView.font = [UIFont fontWithName:@"Marker Felt" size:20]; //4. 设置字体的颜色 textView.textColor = [UIColor magentaColor]; //5. 是否允许编辑内容 (默认为YES) textView.editable = YES; //6. 设置文字能否被选择 textView.selectable = YES; //7. 返回键的类型 (默认为UIKeyUIReturnKeyDefault) textView.returnKeyType = UIReturnKeyDefault; //8. 键盘类型 textView.keyboardType = UIKeyboardTypeDefault; //9. 是否可以拖动 textView.scrollEnabled = YES; //10. 设置为边框角弧度 textView.layer.cornerRadius = 5; //11. 设置边框宽度 textView.layer.borderWidth = 1.0; //12.UITextView自定选择文字后的菜单 UIMenuItem *menuItem = [[UIMenuItem alloc]initWithTitle:@"分享到空间" action:@selector(changeColor:)]; UIMenuController *menu = [UIMenuController sharedMenuController]; [menu setMenuItems:[NSArray arrayWithObject:menuItem]]; [menuItem release]; //设置代理 textView.delegate = self; [self.view addSubview:textView]; [textView release]; } #pragma mark --- wuyiyi - (void)changeColor:(UIMenuItem *)item { } #pragma mark --- UITextViewDelegate //将要开始编辑时触发 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView { NSLog(@"%s, %d", __FUNCTION__, __LINE__); return YES; } //将要结束编辑时触发 - (BOOL)textViewShouldEndEditing:(UITextView *)textView { NSLog(@"%s, %d", __FUNCTION__, __LINE__); return YES; } //已经开始编辑时触发 - (void)textViewDidBeginEditing:(UITextView *)textView { NSLog(@"%s, %d", __FUNCTION__, __LINE__); //回收键盘 //(1)如果程序有导航条, 可以在导航条上添加一个Done按钮, 用来退出键盘 UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(levelEditMode:)]; self.navigationItem.rightBarButtonItem = done; [done release]; } //已经结束编辑时触发 - (void)textViewDidEndEditing:(UITextView *)textView { NSLog(@"%s, %d", __FUNCTION__, __LINE__); //结束编辑, 消除Done按钮 self.navigationItem.rightBarButtonItem = nil; } //改变文本时触发 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { NSLog(@"%s, %d", __FUNCTION__, __LINE__); //(2)点击return回收键盘 if ([text isEqualToString:@"\n"]) { [textView resignFirstResponder]; } return YES; // return NO; } //更改UITextView的光标的位置: - (void)textViewDidChangeSelection:(UITextView *)textView { NSRange range; range.location = 0; range.length = 0; textView.selectedRange = range; } #pragma mark ---- done action //点击按钮退出键盘方法 - (void)levelEditMode:(UIBarButtonItem *)sender { UITextView *textV = (UITextView *)[self.view viewWithTag:100]; [textV resignFirstResponder]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
相关文章推荐
- Samsung手机ClipboardUIManager引起的内存泄漏
- iOS中的UISearchBar
- iOS中的UIDatePicker 日期选择器
- iOS中的UIAlertContrller
- LigerUI之Grid使用详解(一)——显示数据
- ios9学习系列:UIStackView
- UITextView汉字光标问题
- iOS7 UITextViewDidChange - crashes
- Easyui
- UITableView动态改变Cell高度
- iOS-Core-Animation-Advanced-Techniques
- [Leetcode]Verify Preorder Sequence in Binary Search Tree
- Silverlight端费时操作不阻塞UI线程处理方法
- ORA-00838: Specified value of MEMORY_TARGET is too small(转)
- - initWithImage: highlightedImage:
- RMQ(Range Minimum Query)算法
- iOS UISeachBar键盘消失 虚拟按钮
- UIView(包括子类)的几个初始化时执行动作的时机
- UITableView的使用
- 我的DUILIB常用库