首页
学习
活动
专区
圈层
工具
发布

史上最全的iOS之UITextView实现placeHolder占位文字的N种方法

前言 iOS开发中,UITextField和UITextView是最常用的文本接受类和文本展示类的控件。UITextField和UITextView都输入文本,也都可以监听文本的改变。...用UITextField或者UITextView来替换,同样可以实现带placeholder的textView,在次就不在详述。...dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } /** * 每次调用drawRect:方法,都会将以前画的东西清除掉...特点:这个方法的和方法三很相似,只是没有利用通知来监听文本的改变,需要配合textViewDidChanged:这个文本改变的代理方法使用。...UITextView的文本改变的代理方法 #import "ViewController.h" #import "WSTextView.h" @interface ViewController ()

10.9K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS文本布局探讨之三——使用TextKit框架进行富文本布局

    iOS文本布局探讨之三——使用TextKit框架进行富文本布局 一、引言         关于图文混排,其实以前的博客已经讨论很多,在实际开发中,经常使用第三方的框架来完成排版的需求,其中RCLabel...CoreText是一个比较底层且十分强大的文本渲染框架,但是其使用起来并不是十分方便。在较低版本的iOS系统中,要进行富文本排版十分困难。...在iOS6中,系统为UILabel,UITextView等这类文本渲染控件引入了NSAttributedString属性,有了NSAttributedString这个类,创建灵活多彩的文本控件变得十分轻松...三、为富文本附件添加用户交互能力         TextKit框架强大到只使用UILabel就可以完成复杂的富文本布局,但是UILabel有一个致命的缺陷,其无法进行用户交互。...这样富文本布局其实就不只局限于图文混排了,我们可以插入音频,插入视频,甚至插入任意自定义格式的数据。结合使用NSTextAttachment与UITextView,这些都能实现。

    2.3K20

    【IOS开发基础系列】UITextView专题

    boundingRectWithSize:options:context:  返回文本绘制所占据的矩形空间。...最终,该对象包含的信息将用于文本绘制。该参数可为 nil 。 返回值         一个矩形,大小等于文本绘制完将占据的宽和高。 讨论         可以使用该方法计算文本绘制所需的空间。...size 参数是一个constraint,用于在绘制文本时作为参考。但是,如果绘制完整个文本需要更大的空间,则返回的矩形大小可能比 size更大。...一般,绘制时会采用constraint 提供的宽度,但高度则会根据需要而定。 特殊情况         为了计算文本块的大小,该方法采用默认基线。...http://www.tuicool.com/articles/73Y7Zb 动态计算UITextView的高度 http://blog.sina.com.cn/s/blog_6ae8b50d0100zl2u.html

    55640

    IOS本地化应用

    即将须要翻译的字符串替换成其它如果已经是翻译过的“译文”,能够用谷歌翻译替换一下或者是将全部元音字母替换成x。...以防止改动可本地化的属性、不可本地化的属性或者是全部属性,如图所看到的。然后将需要翻译的文本发给翻译人员或者是本地化服务提供商去翻译即可了。...(3)本地化将资源发给本地化服务提供商之后,他们会发回翻译完毕的文件。依据翻译的文本进行本地化工作。 (4)版本号控制用版本号控制系统记录下你的每一次变更。 (5)測试不用怎么说,必需要的步骤。...(6b)本地化变更假设你做了一些本地化变更,比方改变了已本地化的文本,那么就须要从头開始这个过程。并将这些变更发给本地化人员。能够重用之前的字符串翻译,这么做会大大提高效率,但仍然非常麻烦。...sc); static inline void localizeUITextField(UITextField* tf); static inline void localizeUITextView(UITextView

    1K00

    iOS表情键盘的完整实现

    ,并把文本替换为图片的功能,PPStickerDataManager类的头文件如下: @interface PPStickerDataManager : NSObject + (instancetype...转成 "笑死了[笑哭]" 这样的纯文本发到服务端,而不是直接发表情图片,向服务端请求内容的时候也是传回 "笑死了[笑哭]",然后客户端再根据正则匹配找出表情替换成对应的表情图片,然后显示到页面上。...表情功能,UITextView都是用NSAttributedString进行赋值的,并且我们底层其实还是用上面说到的纯文本进行实现的,那么把 [笑死] 转成 ?...: - (void)cut:(id)sender { // 1.从textView中拿到对应的纯文本,比如:笑死了[笑死] NSString *string = [self.attributedText...将检测到是表情的文本替换成对应的图片 [attributeContent replaceCharactersInRange:self.selectedRange withString:@

    2.2K30

    iOS 文本输入控制(献上框架)

    于是,我写下这篇文章,总结一下关于UITextField和UITextView输入控制的那些事儿,并且还献上一个框架。...,经过替换、移除、截取等操作就能实现对文本的控制。...当我们设定了某些不能输入的字符,就需要查找出来移除,然后若对长度有要求,还得再次判断,字符串替换过程有些复杂,而且还会造成不可控的字符改变(用户可能是无意识的)。...结论 由此可见,对文本输入的控制需要在两种监听文本输入方法间灵活处理,为了提高开发效率,本人对其做了封装,下面解释一下YBInputControl框架的设计思路和设计模式。...*/ @property (nonatomic, copy, nullable) NSString *regularStr; /** 文本变化回调(observer为UITextFiled或UITextView

    1.2K120

    iOS学习——键盘弹出遮挡输入框问题解决方案

    ,一般用于进行输入信息的有两类:UITextField和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程中,我们需要控制键盘的弹出和收起、在输入结束的时候获取输入的信息...一 文本框输入完整的响应过程    首先,我们要对UITextField和UITextView的输入输出进行控制,需要借助其对应的代理协议UITextFieldDelegate或UITextViewDelegate...textFieldDidEndEditing: 二 键盘的弹出与收起 2.1 弹出键盘的控制   关于键盘的弹出与收起问题,从上面的响应过程分析可知,键盘的弹出对于UITextField和UITextView...都是自动弹出的,所以我们无需进行控制。...:(YYTextView *)textView{ if (textView.tag == 400) { NSString *reason = textView.text;

    4.1K60

    图文混排

    UITextView,UITextField、UILabel都已经基于Text Kit重新构建,所以它们都支持分页文本、文本包装、富文本编辑、交互式文本着色、文本折叠和自定义截取等特性。...CoreText实现表情混排的原理,在简介中介绍过,一个CTLine代表一行,而一个CTLine又由多个CTRun组成,这里实现表情混排的原理其实就是把CTLine中的某一个CTRun替换成空白字符,然后再根据这个...unichar objectReplacementChar = 0xFFFC; NSString *content = [NSString stringWithCharacters:&objectReplacementChar...4、NSTextContainer NSTextContainer描述了文本在屏幕上显示时的几何区域,每个text container与一个具体的UITextView相关联。...5、UITextView UITextView作为显示出来的实际的文本视图,在 TextKit 中,文本视图有两个目的:第一,它是文本系统用来绘制的视图。

    1.8K30

    iOS隐私安全:用户协议及隐私政策弹框(包含超链接属性、demo支持中英文切换)

    《用户协议及隐私政策》 弹框的实现步骤: 1、自定义TextView,采用富文本属性进行内容设置attributedText(包括下划线NSUnderlineStyleSingle、超链接NSLinkAttributeName...URL Webview) 效果图(点击demo的右上架文字进行中英文切换) 文本框信息对应的中英文key,用于本地化 "Explain3" = "向您说明,在使用我们的服务时,我们如何收集、使用、...储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。...showQCTserviceAgreementViewBlock]; } // return NO; } II、封装《用户协议及隐私政策》视图 获取带有富文本字符串的...")]; NSString *str5 = QCTLocal(@"then_click_Agree"); NSString *str = [NSString stringWithFormat

    2.4K30

    无需替换设备!CCLinkIE转EtherCAT的“无痛升级”方案

    在数控机床领域,设备间的高效协同始终是提升生产效率的关键。然而,许多工厂面临一个现实问题:不同品牌设备使用的通信协议差异,导致数据交互滞后甚至失效。...数据映射:通过网关将PLC的控制信号(如启动/停止指令)转换为EtherCAT的PDO(过程数据对象),并实时同步伺服的位置反馈数据。...实际价值与行业适配性此类方案在机械制造中具有广泛适用性:成本优化:无需替换现有CCLinkIE设备,仅需增加网关即可集成EtherCAT设备,节省改造费用。...总结耐达讯通信技术CCLinkIE转EtherCAT网关并非简单的协议“翻译”,而是通过精准的数据映射和周期同步,打破异构系统的壁垒。...在数控机床场景中,它既保留了原有设备的投资价值,又释放了EtherCAT的实时控制潜力。随着工业自动化对跨协议协同需求的增加,此类技术将成为推动制造业升级的实用工具。

    6200

    iOS学习——tableview中带编辑功能的cell键盘弹出遮挡和收起问题解决

    最近在项目中经常用到UITableView中的cell中带有UITextField或UITextView的情况,然后在这种场景下,当我们点击屏幕较下方的cell进行编辑时,这时候键盘弹出来会出现遮挡待输入的...2.1 UITextField或UITextView点击之后的详细流程   在对cell进行封装和自定义的时候,我们需要考虑我们的UITextField或UITextView从点击编辑框到结束编辑的整个过程是怎么样的...下面的流程就是UITextField或UITextView在整个编辑过程中的详细流程步骤: 在成为第一响应者之前,文本框调用其代理的textFieldShouldBeginEditing:  方法来允许或阻止其第一响应者...  在文本框输入即将结束,即即将注销第一响应者时,系统会调用 textFieldShouldEndEditing: 方法 文本框注销第一响应者,对应的响应时间就是系统收回键盘,并且在隐藏键盘时会发出 UIKeyboardWillHideNotification...  在前面的2.1的UITextField或UITextView点击之后的详细流程分析中我们知道,在点击文本之后弹出键盘时会发送一个UIKeyboardWillShowNotification的通知,

    4.4K80

    iOS界面布局之三——纯代码的autoLayout及布局动画

    :(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(nullable NSDictionaryNSString *,id>...,当我们文字多到一定行数,宽度会保持不变,文本框可以进行内容滑动,如果不用autolayout,这个功能会比较棘手一些,但是使用它,会发现这是如此的容易: @interface ViewController... *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{     //当文本高度大于textView...<100) {         float hight =textView.contentSize.height;         //将以前的移除掉         [self.view removeConstraints...四、通过动画改善更新约束时的效果         这一点非常coll,上面我们已经实现了textView随文本的行数高度进行自适应,但是变化的效果十分生硬,还要apple的动画框架支持autolayout

    3.1K30

    ios学习——键盘的收起

    在开发过程中,我们经常会用到UITextField、UITextView等文本框,然后这些文本框在点击之后会自动成为第一响应者(FirstResponder),并自动弹出软键盘。...UITextField、UITextView等文本框都有效,不需要对每一个UITextField、UITextView等文本框进行进行设置。...2、利用键盘上的 回车键 来进行设置当前UITextField、UITextView等文本框不是第一响应者,这种方法对UITextField、UITextView的应用不一样,需要区别进行。   ...但是,我们可以根据UITextViewDelegate提供的方法对键盘输入的值进行判断,如果为回车键(\n)则设置当前UITextView不是第一响应者,否则不操作。...:(NSRange)range replacementText:(NSString *)text { //判断是否是回车键 if ([text isEqualToString:@"\n

    2.1K60
    领券