UITextView

iOS UIAlertController嵌入UITextView 1.Controller继承UITextViewDelegate 2.先创建一个UITextView UITextView *textView = [[UITextView alloc] init]; textView.layer.borderColor = [[UIColor lightGrayColor] CGColor]; textView.layer.borderWidth = 1.0f;... 阅读详情

self.textView = [[[UITextView  alloc] initWithFrame:self.view.frame] autorelease]; //初始化大小并自动释放
 2
 3 self.textView.textColor = [UIColor blackColor];//设置textview里面的字体颜色 
 4
 5 self.textView.font = [UIFont fontWithName:@"Arial" size:18.0];//设置字体名字和字体大小 
 6
 7 self.textView.delegate = self;//设置它的委托方法 
 8
 9 self.textView.backgroundColor = [UIColor whiteColor];//设置它的背景颜色
10
11 self.textView.text = @"Now is the time for all good developers to come to serve their country.\n\nNow is the time for all good developers to come to serve their country.";//设置它显示的内容 
12
13 self.textView.returnKeyType = UIReturnKeyDefault;//返回键的类型 
14
15 self.textView.keyboardType = UIKeyboardTypeDefault;//键盘类型 
16
17 self.textView.scrollEnabled = YES;//是否可以拖动 
18
19 self.textView.autoresizingMask = UIViewAutoresizingFlexibleHeight;//自适应高度
20
把键盘的回车键当初键盘弹回按钮
pragma mark - UITextView Delegate Methods    

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{   

    if ([text isEqualToString:@"\n"]) {   

        [textView resignFirstResponder];   

        return NO;   

    }

    return YES;   

}
对textView字数限制
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text   
{   
    if (range.location>=100)    
    {   
        return  NO;   
    }   
    else    
    {   
        return YES;   
    }   

}


2. UITextView退出键盘的几种方式

因为你点击UITextView会出现键盘,如果你退出键盘,有如下几种方式:

(1)如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate。

代码如下:

- (void)textViewDidBeginEditing:(UITextView *)textView {  
 
   UIBarButtonItem *done =    [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leaveEditMode)] autorelease];  
 
   self.navigationItem.rightBarButtonItem = done;      
 
}

- (void)textViewDidEndEditing:(UITextView *)textView {  

    self.navigationItem.rightBarButtonItem = nil;  
 
}

- (void)leaveEditMode {  

    [self.textView resignFirstResponder];  
 
}

 

(2)如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。
代码如下:

#pragma mark - UITextView Delegate Methods   

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text  
{  
    if ([text isEqualToString:@"\n"]) {  
        [textView resignFirstResponder];  
        return NO;  
    }  
    return YES;  
}

 


这样无论你是使用电脑键盘上的回车键还是使用弹出键盘里的return键都可以达到退出键盘的效果。

(3)还有你也可以自定义其他加载键盘上面用来退出,比如在弹出的键盘上面加一个view来放置退出键盘的Done按钮。

代码如下:

 

UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];  
    [topView setBarStyle:UIBarStyleBlack];  
    UIBarButtonItem * helloButton = [[UIBarButtonItem alloc]initWithTitle:@"Hello" style:UIBarButtonItemStyleBordered target:self action:nil];        
    UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];  
    UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];  
    NSArray * buttonsArray = [NSArray arrayWithObjects:helloButton,btnSpace,doneButton,nil];  
    [doneButton release];  
    [btnSpace release];  
    [helloButton release];  
    [topView setItems:buttonsArray];  
    [tvTextView setInputAccessoryView:topView];  
-(IBAction)dismissKeyBoard  
{  
    [tvTextView resignFirstResponder];  
}

 

(4)设置UITextView圆角问题

做法是在 #import QuartzCore/QuartzCore.h 后,便能調用 [textView.layer setCornerRadius:10]; 來把 UITextView 设定圓角

(5)UITextView根据文本大小自适应高度

通过实现文本字数来确定高度,如下:

NSString * desc = @"Description it is  a test font, and don't become angry for which i use to do here.Now here is a very nice party from american or not!";  
CGSize  size = [desc sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(240, 2000) lineBreakMode:UILineBreakModeWordWrap];

 

然后需要定义UITextView的numberoflines为0,即不做行数的限制。如下:

[textView setNumberOfLines:0];  
[textView setFrame:CGRectMake(40, 135, 240, size.height+10)];  
[textView setText:desc];

 

 

(6)UITextView自定选择文字后的菜单

在ViewDidLoad中加入:

UIMenuItem *menuItem = [[UIMenuItem alloc]initWithTitle:@"分享到新浪微博" action:@selector(changeColor:)];
UIMenuController *menu = [UIMenuController sharedMenuController];
[menu setMenuItems:[NSArray arrayWithObject:menuItem]];
[menuItem release];

 

 

当然上面那个@selector里面的changeColor方法还是自己写吧,也就是说点击了我们自定义的菜单项后会触发的方法。

然后还得在代码里加上一个方法:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if(action == @selector(changeColor:))
{
if(textView.selectedRange.length>0)
return YES;
}
return NO;
}

 

实现后如下图:



一、给UITextView绘制圆角,通过QuartzCore框架,操作CALayer可以给UITextView绘制圆角边框。

       textView.layer.cornerRadius = 6

       textView.layer.masksToBounds = YES

通过cornerRadius可设置圆角弧度。

 

二、UITextView和UIImageView组合,将背景图片制作好加载进UIImageView。

      CGRect imageViewFrame = CGRectMake(30.0,100.0,240.0,90.0);

      UIImageView *imageView = [[UIImageView alloc] initWithFrame:imageViewFrame];

      imageView.image = [UIImage imageNamed:@"background.png"];

      imageView.userInteractionEnabled = YES;

      CGRect textViewFrame = CGRectMake(5.0,5.0,230.0,80.0);

      UITextView *textView = [[UITextView alloc] initWithFrame:textViewFrame];

      textView.backgroundColor = [UIColor clearColor];

      [imageView addSubview:textView];

设置imageView.userInteractionEnabled = YES,让textView响应触碰事件。

 

三、设置UITextView背景图片,在UITextView区域内。

      CGRect textViewFrame = CGRectMake(30.0,100.0,240.0,90.0);

      UITextView *textView = [[UITextView alloc] initWithFrame:textViewFrame];      

      UIImageView *imageView = [[UIImageView alloc] initWithFrame:[textView bounds]];

      imageView.image = [UIImage imageNamed:@"background.png"];

      [textView addSubview:imageView];

      [textView sendSubviewToBack:imageView];



UITextView、UITextField监听文本框中内容的变化 先来总结一些UITextView和UITextField都是如何 阅读详情

相关推荐

海康工业相机硬件触发与YOLOv5实时检测的工业自动化实践

本文详细介绍了如何将海康工业相机的硬件触发模式与YOLOv5目标检测模型相结合,构建一套高实时性的工业自动化质检系统。文章从产线痛点出发,深入解析了硬件接线、SDK回调取图的实战技巧(包括规避常见Bug),并展示了如何将YOLOv5封装为服务,最终通过Flask API串联业务逻辑,实现从精准触发到实时AI判断的完整落地流程。

k6l7m8n9的博客 492

iOS开发 UITextView详细介绍 (属性和协议)

UITextView比较常用于‘反馈’‘意见’这样的页面中,没有提示语,所以常用于自定义方式来创建提示语,比如放一个Label或者自己画一个继承自UIView的页面 一、UITextView的创建和初始化 1、UITextView的创建 用这种方式去创建一个UITextView @property (nonatomic, strong) UITextView *textView; 2、UITextView的创建 用这种方式去创建一个UITextView self.textView = [[UIText.

Water_Cyan的博客 3494

Ubuntu 22.04下Colmap带CUDA支持的编译安装全攻略(附显卡架构查询指南)

本文详细指导在Ubuntu 22.04系统上从源码编译安装支持CUDA加速的Colmap,解决了官方版本无GPU支持导致处理速度慢的问题。重点包括环境依赖准备、CUDA工具链配置、显卡计算能力查询以及完整的编译安装步骤,旨在帮助研究者和开发者高效部署高性能三维重建工具。

gold8的专栏 343

【iOS】UITextView

在知乎日报项目的仿写过程中,需要实现一个评论区的长评论折叠,UITextView是 iOS 开发中一个功能强大且常用的用户界面组件,用于展示和编辑多行文本内容

2301_80467753的博客 2110

Spark Sql 连接mysql

转载请务必注明原创地址为:http://dongkelun.com/2018/03/21/sparkMysql/ 1、基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源。当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD。这是因为结果是以数据框(DataFrame)返回的,且这样 Spark SQL操作轻松或便......

主要分享大数据相关的知识,如Spark、Hudi 1万+

Transformer在BEV感知中的统治地位

Transformer在BEV感知中的统治地位 ,人工智能,计算机视觉,大模型,AI,本文围绕 Transformer 在 BEV 感知中的统治地位展开,介绍了 Transformer 的基础原理,如自注意力、多头注意力机制等,以及 BEV 感知的概念、任务与挑战。阐述了 Transformer 在 BEV 感知中的技术优势,包括全局建模、灵活特征融合和长距离依赖捕捉能力,还介绍了典型架构、代码示例及在自动驾驶目标检测等领域的应用案例。同时,评估了其性能,提及优化方法,并展望了与其他技术融合、端到端系统等…

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

[Objective-C]UITextView的使用

UITextView使用方法

qq_42208321的博客 588

【同等学力】2025-数学✨

本文主要涵盖了谓词逻辑、集合论、图论和排列组合等多个数学领域的题目。在谓词逻辑部分,要求用全称量词和存在量词表达“没有两个人的指纹完全相同”。集合论部分涉及集合运算的证明,如证明(A-B)-C=(A-C)-(B-C)。图论部分包括计算给定10个点的联通图的边与面数。排列组合部分则要求计算从8个人中选6个并分为三组的不同方法。此外,还涉及偏序、长链、反链、二项式定理等相关内容,参考了多个优快云博客中的解题思路。

super_mochi1 676

iOS UITextView 点击文字、文字折行、富文本等使用

iOS 对于文本的处理已经有了很好的封装,对于富文本的需求也做了不少的工作。尤其是使用NSAttributedString,可以很好的完成大部分的工作。但是我早期做的项目中,有那么一个需求,就是当用户需要点击特定的文字,并完成相应的任务。比如:在一个英语测试的App里,有一个功能叫找错,就是一英文里面有一个或几个单词是错误的需要点击一下删除掉,这个时候就需要用到点击确定字母并删除的功能。那么我们就根据这个需求来完成下面的操作。 首先创建一个工程,然后命名为:TapTextView 然后在创建一个文件

海阔天空的专栏 2093

【人工智能】向量数据库全生命周期数据安全防护体系:破解向量化与检索双环节泄露风险

大模型时代,向量数据库已成为RAG(检索增强生成)架构、语义检索、多模态应用的核心基础设施,解决了大模型幻觉、长上下文窗口限制、私有知识落地等核心痛点。但行业普遍存在认知误区:将Embedding向量等同于“无害的语义压缩乱码”,忽视了向量数据原生的泄露风险。

奶爸的编程之路,也就一周冷个三天 155

Nmap源码分析(端口扫描)

端口扫描是Nmap的核心功能,用于确定目标机的端口状态(开放、关闭、过滤等),也为Nmap的服务与版本扫描、OS扫描、脚本扫描提供基本的指引信息。所以,深入理解端口扫描的实现对分析其他的扫描方式很有帮助。 1简单回顾   首先简要回顾一下端口扫描的原理以及命令行选项。 1.1扫描原理   Nmap提供的10多种类型的端口扫描方法,如TCP SYN/ACK/FIN/Xmas/NULL/ Windows/Connect,FTP Bounce, Idle scan, UDP port u...

墨痕诉清风的博客 1596

UITextView及键盘隐藏

1.创建并初始化 UITextView UITextView *textView;self.textView = [[[UITextView alloc] initWithFrame:self.view.frame]autorelease]; //初始化大小并自动释放 self.textView.textColor = [UIColor blackColor];//设置textview里面

zeng11088的专栏 5751

【大模型】从0到1:DeepSeek + Coze API调用全攻略,企业,开发个人专属AI智能体使用详解,小白也能轻松上手

本文介绍了如何通过API将Coze智能体集成到自有系统中的完整步骤:1)获取API token和个人工作空间的space_id;2)通过GET请求获取bot_id;3)使用POST发起对话请求,需包含bot_id、user_id和问题内容;4)通过两次API调用异步获取响应消息。文章还解释了Coze采用异步处理机制的原因,并预告了下期将讲解Java调用Coze接口的实现方法。整个过程需要使用API工具进行调试,确保了系统集成的可行性。

qq_27246521的博客 822

iOS给UITextView添加placeholder

在iOS开发中我们经常会用到UITextField和UITextView,在使用UITextField时系统会自己提供placeholder属性,但是在UITextView则没有,那么如何在UITextView中设置placeholder呢,如下所示: 方法一: #pragma mark - 懒加载 - (UITextView *)textView { if (!_textView) { _textView = [UITextView new]; _te...

qq_37269542的博客 2519

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

UITextView使用中的那些坑

本文主要是介绍在使用UITextView的时候遇到的问题, 这也主要是源于前几天项目需要使用UITextView进行文本展示, 遇到了关于UITextView设置内容后无法滚动到顶部的问题.

wlaizff的专栏 6535

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

iOS UITextView,UITextField,UILabel

文章目录什么情况下使用标签,文本域和文本视图UITextViewUITextField 什么情况下使用标签,文本域和文本视图 UILabel:显示只读文本,最最基本的显示文字的,支持单行或多行, UITextField:可编辑文本,但是无法换行,只能在一行显示。当点击键盘上的return时会收到一个事件做一件事。当内容太长一行没有完全显示时,提供水平方向的字符的定位seeking。主要用于简短的文...

煮酒Shae 1399

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

UITextView-WZB:让UITextView更强大

UITextView-WZB:让UITextView更强大 项目介绍 在iOS开发中,UITextView是一个常用的控件,用于处理多行文本输入。然而,系统提供的UITextView功能相对有限,无法直接支持placeholder、自动高度调整以及图片输入等常见需求。为了解决这些问题,UITextView-WZB应运而生。这是一个强大的UITextView分类库,通过扩展系统UITextView的...

gitblog_00031的博客 415

UITextView的placeholder猥琐做法

在UITextField中自带placeholder属性,可以用于提示输入框信息。但是UITextView并不具备此功能,经过自己的多次 尝试,终于发现了一种猥琐的做法。以下介绍在UITableView中的情况,XIB更简单,就不记录。 //首先定义UITextView UITextView *textView = [[UITextView alloc] init

心梦飞扬 1万+

swift中UITextView的使用

let textview = UITextView(frame: CGRectMake(10.0, 10.0, (CGRectGetWidth(self.view.bounds) - 10.0 * 2), 80.0)) self.view.addSubview(textview) textview.backgroundColor = UIColor.lightGrayColor(

番薯大佬的专栏 4364

如何让UITextView一直显示滚动条

http://www.cocoachina.com/bbs/simple/?t64154.html //头文件 #import @interface TextView : UIView{ UITextView *boxText; } - (id)initWithFrame:(CGRect)frame withContext:(NSString *)text; @end

yhawaii的专栏 7144

uitextview背景色_UITextView中带有圆角的背景

uitextview背景色I have had the opportunity to learn so many things while working on Proton. Just as much as I like sharing my code, I also enjoy talking about the challenges and the wins. This article fo...

weixin_26638123的博客 811

UITextView用法

1.创建并初始化创建UITextView的文件,并在.h文件中写入如下代码:1#import 23@interface TextViewController : UIViewController {4 UITextView *textView;5 }67 @property (nonatomic, retain) UITextView *textView; 89@end 在.m文件中初

xiekunmiao的专栏 456

[iOS]UITextView+Placeholder

以前为UITextView的占位符纠结过很多次,使用过多种方式处理过,最近找到了一种别人处理的方式,比较完美.资源下载,自己下载使用的,会control+c的同学没必要下载,哈哈 // The MIT License (MIT) // // Copyright (c) 2014 Suyeol Jeon (http:xoul.kr) // // Permission is hereby gran...

Gamin 1179

让UITextView文字垂直居中

让UITextView和UITextField同样拥有垂直居中的属性,建议单独一个类继承自UITextView 只需要初始化UITextView之后用KVO监听 "contentSize" 属性即可 _textView = [[XHMessageTextView alloc] init];     _textView.delegate = self;    

huanghaiyan_123的专栏 6642
上一篇: iOS4中Core Motion框架的介绍和使用
下一篇: sina微博oAuth第三方登录代码示例
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值