首页 > 其他分享 >IOS学习-UITextView

IOS学习-UITextView

时间:2023-05-29 16:06:17浏览次数:39  
标签:UITextView toolbarFrame self IOS 学习 uiTextView3 void textView view


《iOS 8开发指南》,自己总结用

UITextView

文本视图(UITextView)与文本框类似,差别在于文本视图可显示一个可滚动和编辑的文本块,供用户阅读或修改。仅当需要的的输入很多时,才应使用文本视图。

Attribute Inspector分为3部分(TextField, control, view)
(1) Text:设置文本框的默认文本
(2) Placeholder:可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。输入文字,自动消失。
(3) Background:设置背景
(4) Disabled:若选中此项,用户将不能更改文本框内容
(5) 接下来是3个按钮,用来设置对齐方式
(6) Border Style:选择边界风格
(7) 清楚按钮
——》Never appears:从不出现
——》Appears while editing:编辑时出现
——》Appears unless editing: 编辑时不出现
——》Is always visible:总是可见
(8) Clear when editing begins:若选中此项,则当开始编辑这个文本框时,文本框中之前的内容会被清除掉。
(9)设置文本框中文本的颜色
(10)Font:设置文本的字体与字号
(11)Min Font Size :最小字体
(12)Adjust To Fit:指定文本框尺寸缩小时文本框中的文本是否也要缩小。选择它,可以使得全本文本都可见,及时文本可长。但是这个选项要跟Min Font Size配合使用,文本再缩小,也不会小于设定的Min Font Size.
(13)Capitalization:设置大写。下啦菜单中有4个选项。
——》None:不设置大写
——》Words:每个单词首字母大写,这里的单词指的是以空格分开的字符串
——》Sentences:每个句子的第一个字母大写,这里的句子是以句号加空格分开的字符串
——》 All Characters:所有字母大写
(14) Correction:检查拼写,默认是YES
(15)Keyboard:选择键盘类型,比如全数字、字母和数字等
(16)Return Key:选择返回键,可以选择Search、Return、Done等
(17)Auto-enable Return Key:如选择此项,则只有至少在文本框输入一个字符后键盘的返回键才有效。
(18)Secure:当你的文本框用作密码输入框时,可以选择此项。

常用属性

(1) textColor
(2) font
(3) editable
(4) textAlignment
——》UITextAlignmentRight:右对齐
——》UITextAlignmentCenter:居中对齐
——》UITextAlignmentLeft:左对齐

在屏幕中换行显示文本

//TextView
-(void)testUITextView1{
    UITextView *textView = [[UITextView alloc]init];
    textView.frame = self.view.bounds;
    textView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
//    textView.editable = NO;//不可编辑
    textView.backgroundColor = [UIColor blackColor];//背景为黑色
    textView.textColor = [UIColor whiteColor];//字符为白色
    textView.font = [UIFont systemFontOfSize:32];//字体的设置
    //textView.textAlignment = NSTextAlignmentCenter;
    textView.text = @"学习UITextView\n"
                    "第2行\n"
                    "第3行\n"
                    "第3行\n"
                    "第4行\n"
                    "第5行\n"
                    "第6行\n"
                    "第7行\n"
                    "第8行\n"
                    "第9行\n"
                    "第10行\n"
                    "第11行\n"
                    "第12行\n";
    [self.view addSubview:textView];
}

在屏幕中显示可编辑的文本

-(void)testUITextView2{
    self.uiTextView2 = [[UITextView alloc]init];
    self.uiTextView2.frame = self.view.bounds;
    self.uiTextView2.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    self.uiTextView2.delegate = self;
    self.uiTextView2.text = @"亲们,可以编辑这一段文本";
    [self.view addSubview:self.uiTextView2];
}

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    [self.navigationController setToolbarHidden:NO animated:YES];
}

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [self textViewDidEndEditing:self.uiTextView2]; //画面显示时, 设置为非编辑模式
}

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [self.uiTextView2 resignFirstResponder];//画面跳转时设置为非编辑模式
}

- (void)textViewDidBeginEditing:(UITextView *)textView{
    static const CGFloat kKeyboardHeight = 216.0;
    //按钮设置为【完成】
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneDidPush)];
    [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{
    [self.uiTextView2 becomeFirstResponder];
}

-(void)doneDidPush{
    [self.uiTextView2 resignFirstResponder];
}
-(void)testUITextView3{
    //UITextView的追加
    self.uiTextView3 = [[UITextView alloc]init];
    self.uiTextView3.frame = self.view.bounds;
    self.uiTextView3.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    self.uiTextView3.text = @"此文本可编辑";
   // [self.view addSubview:self.uiTextView3];
    
    //在工具条中追加
    UIBarButtonItem *hasTextButton = [[UIBarButtonItem alloc] initWithTitle:@"hasText" style:UIBarButtonItemStylePlain target:self action:@selector(hasTextDidPush)];
    UIBarButtonItem *selectionButton = [[UIBarButtonItem alloc]initWithTitle:@"selction" style:UIBarButtonItemStylePlain target:self action:@selector(selectionDidPush)];
    UIBarButtonItem *alignmentButton = [[UIBarButtonItem alloc]initWithTitle:@"alignment" style:UIBarButtonItemStylePlain target:self action:@selector(alignmentDidPush)];
    UIBarButtonItem *scrollButton = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(scrollDidPush)];

    NSArray *buttons = [NSArray arrayWithObjects:hasTextButton, selectionButton, alignmentButton, scrollButton,nil];
    [self setToolbarItems:buttons animated:YES];
}

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    static const CGFloat kKeyboardHeight = 216.0;
    //调整工具条位置
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.3];
    self.uiTextView3.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height - kKeyboardHeight);
    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];
    [self.uiTextView3 becomeFirstResponder]; // 画面显示时显示键盘
}

-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    // 恢复工具条
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.3];
    self.uiTextView3.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];
    [self.uiTextView3 resignFirstResponder];
}

-(void)hasTextDidPush{
    UIAlertView *alert = [[UIAlertView alloc]init];
    if(self.uiTextView3.hasText) {
        alert.message = @"textView.hasText = YES";
    } else {
        alert.message = @"textView.hasText = NO";
    }
    [alert addButtonWithTitle:@"OK"];
    [alert show];
}

-(void)selectionDidPush{
    UIAlertView *alert = [[UIAlertView alloc]init];
    alert.message = [NSString stringWithFormat:@"location = %lu, length = %d", (unsigned long)self.uiTextView3.selectedRange.location, self.uiTextView3.selectedRange.length];
    [alert addButtonWithTitle:@"OK"];
    [alert show];
}

-(void)alignmentDidPush{
    self.uiTextView3.editable = NO;
    if(UITextAlignmentRight < ++self.uiTextView3.textAlignment) {
        self.uiTextView3.textAlignment = UITextAlignmentLeft;
    }
    self.uiTextView3.editable = YES;
}

-(void)scrollDidPush{
    //NSRange scrollRange = NSMakeRange(0, 1);
    [self.uiTextView3 scrollRangeToVisible:NSMakeRange(0, 1)];
}


标签:UITextView,toolbarFrame,self,IOS,学习,uiTextView3,void,textView,view
From: https://blog.51cto.com/u_11797608/6371465

相关文章

  • axios 或 @nestjs/axios 错误地应用 npm config proxy
    npmproxy$npmconfiggetproxyhttp://127.0.0.1:25378/如果你的npm设置了如上代理,那么当请求本地服务时,应该会出现代理错误(通常是502响应):import{HttpService}from'@nestjs/axios';@Injectable()exportclassForwardService{@Inject()privatereadonlyhtt......
  • 关于VBA的TextStream StdOut相关程序的学习——源代码(刘永富博士的ExcelVBA编程开发)
    Subtest3()'标准输出-查找相关目录下所有的GIF格式文件。DimTS1AsIWshRuntimeLibrary.TextStreamDimTS2AsIWshRuntimeLibrary.TextStreamSetWShell=NewIWshRuntimeLibrary.WshShellSetWE=WShell.Exec("cmd.exe/k")SetTS1=WE.StdInTS1.......
  • SWE学习-第十五节
     动态插入PLC --确定选择已有的PLC  ......
  • K8S学习笔记
    K8S官网文档基本概念节点|Kubernetes(p2hp.com)使用kubectl来查看节点状态和其他细节信息:kubectldescribenode<节点名称>容器状态要检查Pod中容器的状态,你可以使用kubectldescribepod<pod名称>其输出中包含Pod中每个容器的状态。pod配置文件详解创建......
  • SWE学习-第十节
    转移管理标注编辑  ......
  • SWE学习-第九节
    转移管理相同电线之间等电位的转移叫做转移管理   插入单个  插入多个左边依次点击选择,然后右边依次点击选择 ......
  • SpringMVC学习系列(9) 之 实现注解式权限验证
    对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在SpringMVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现。但借助于SpringMVC中的action拦截器我们可以实现注解式的权限验证。一.首先介绍一下action拦截器:HandlerInterceptor是Sp......
  • SpringMVC学习系列(8) 之 国际化
    在系列(7)中我们讲了数据的格式化显示,Spring在做格式化展示的时候已经做了国际化处理,那么如何将我们网站的其它内容(如菜单、标题等)做国际化处理呢?这就是本篇要将的内容—>国际化。一.基于浏览器请求的国际化实现:首先配置我们项目的springservlet-config.xml文件添加的内容如下:<bean......
  • SpringMVC学习系列(6) 之 数据验证
    在系列(4)、(5)中我们展示了如何绑定数据,绑定完数据之后如何确保我们得到的数据的正确性?这就是我们本篇要说的内容—>数据验证。这里我们采用Hibernate-validator来进行验证,Hibernate-validator实现了JSR-303验证框架支持注解风格的验证。首先我们要到http://hibernate.org/validator......
  • SpringMVC学习系列(7) 之 格式化显示
    在系列(6)中我们介绍了如何验证提交的数据的正确性,当数据验证通过后就会被我们保存起来。保存的数据会用于以后的展示,这才是保存的价值。那么在展示的时候如何按照要求显示?(比如:小数保留一定的位数,日期按指定的格式等)。这就是本篇要说的内容—>格式化显示。从Spring3.X开始,Spring提供......