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

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

于是,我写下这篇文章,总结一下关于UITextField和UITextView输入控制的那些事儿,并且还献上一个框架。...UITextAutocorrectionTypeNo; //换键盘 tf..keyboardType = UIKeyboardTypeASCIICapable; UITextView 的处理方法和 UITextField...三、YBInputControl 框架解读(难点是方法重定向) DEMO地址带用法 首先,为了减少耦合,使用了分类的方式,给UITextField和UITextView添加了一个属性: @interface...结合到框架的业务需求,这里本人考虑的是使用一个中间代理类作为textFiled.delegate,如下: @interface YBInputControlTempDelegate : NSObject...(做过测验,UITextView这么做运行中会有一些中间类找不到setDelegate:方法而崩溃,具体原因还没来得及探究)。

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

    UITableViewCell系列之(一)让你的cell支持二次编辑

    每个开发者采用的方式不同,有的开发者直接以modal/push的方式present出一个控制器,把tableViewCell上的内容传递到被modal/push的控制器的UITextView上,在UITextView...另外一种方法是直接在当前控制器(的界面)上以动画(甚至是没有动画)的形式弹出一个UITextView,在UITextView上修改文本内容,修改完成后再隐藏/移除UITextView,把内容重新显示到tableView...做的好的同学,可能还不忘弹出UITextView的时给tableView添加一个蒙版或者模糊效果以突出重点,提高用户的体验度。以上的两种方式算是中规中矩。...此处称为frame1 根据frame1获取点击的那一行cell 在cell上添加一个和label同样尺寸、同样坐标的UITextView,以让UITextView正好遮盖住label 把cell上的内容显示到...获取点击的那一行在view上的frame CGRect rectInView = [self getCellRectInView:self.view forIndexPath:indexPath

    8.2K40

    输入框高度随输入内容变化

    实现这个效果的关键点只有两点: 获取正在输入内容在UITextView占用了多少行 让UITextView动态改变大小 一开始,为了解决第一个问题,我一直在考虑怎么获取换行事件,发现只用捕捉\n输入即可...所以感觉这个思路太麻烦 对于第一点,有一个方便的计算方法,就是获取UITextView内容的高度比上UITextView的字体的高度,即可得到当前的行数。...这里有一个技巧,那就是不要用UITextView的bound.size.height获取其高度,因为这个获取的高度跟你输入的文字总高度并没有任何关系。...对于第二点,根据计算出的高度重绘界面布局即可。这里我用的是自动布局,每次高度改变就刷新布局关系就行。...:(NSInteger)lines; @end 在每次输入内容的时候计算行数,声明一个变量保存上一次的行数,两次行数不一致即为发生换行 - (void)textViewDidChange:(UITextView

    3.1K10

    ios学习——键盘的收起

    在开发过程中,我们经常会用到UITextField、UITextView等文本框,然后这些文本框在点击之后会自动成为第一响应者(FirstResponder),并自动弹出软键盘。...然而,没有自动定义好的软键盘的回收。今天,我在开发过程中就遇到了这个问题,首先,软键盘收起会发生在两种情况下,一是当前区域为非第一响应者,二是当前区域的输入结束。...UITextField、UITextView等文本框都有效,不需要对每一个UITextField、UITextView等文本框进行进行设置。...2、利用键盘上的 回车键 来进行设置当前UITextField、UITextView等文本框不是第一响应者,这种方法对UITextField、UITextView的应用不一样,需要区别进行。   ...1 //设置回车键的类型和代理,当前类是继承自UITextView的一个类 2 self.delegate = self ; 3 self.returnKeyType = UIReturnKeyDone

    2.6K60

    RunLoop

    first:创建一个定时器,让定时器每隔一秒调用一个打印方法,页面在拖一个uitextview,当我们拖textview时,打印方法不打印了 //这样写默认把timer加入到了runloop NSTimer...timerMethod)userInfo:nilrepeats:YES]; - (void)timerMethod { NSLog(@"%@", [NSThreadcurrentThread]); } 一个...UI模式下的source事件,runloop 就无法再去处理默认模式下的timer 事件。...NSDefaultRunLoopMode默认模式,建议处理时钟事件,网络操作 NSRunLoopCommonModes占位模式(默认模式,UI模式,都有它的事,管的比较多) 启动的初始化模式,应用程序启动的一刻才触发的...我们可以换种方式,定义个中间变量,自己写个循环,来控制runloop什么时候停止循环 while(_stopRun) { [[NSRunLoop currentRunLoop] runUntilDate

    46610

    【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    UITextField 属性 (1) PlaceHolder 属性 PlaceHolder 属性 : 属性值是一个字符串, 再文本框没有输入内容时, 文本框内显示的灰色文本, 用于作为文本框提示信息...; -- No : 不自动更正字母; -- Yes : 自动更正字母; (7) KeyBoard 属性 KeyBoard 属性 : 设置虚拟键盘类型,  ; -- Default : 默认虚拟键盘...IBOutlet :  -- 拖控件到 OCViewController 中 : control + 左键 拖动控件到 ViewController 中; -- 设置 IBOutlet 参数 :  -- 自动生成的代码..., height 两个成员变量, 代表完整内容的宽度和高度; -- contentInset : 属性值是一个 UIEdgeInset 类型值, UIEdgeInset 是结构体, 包含 top, left..., bottom, right 四个成员变量, 显示内容 上下左右 的空白; -- contentOffset : 属性值是一个 CGPoint 类型值, CGPoint 是结构体, 包含 x, y 两个变量

    9.1K20

    TypeWords:让英语学习更高效的打字练习神器

    传统的记忆方式容易显得枯燥,效果也未必理想。今天,我想向大家推荐一款打破常规的开源学习工具——TypeWords。它巧妙地将打字练习与英语学习融为一体,让你在敲击键盘的过程中,不知不觉地提升英语水平。...跳转项目简介TypeWords是一个基于Vue开发的现代化英语学习工具,它通过打字输入的方式帮助你记忆单词和背诵文章。项目的核心理念是:“学习英语,一次敲击,一点进步;记忆不再盲目,学习更高效”。...:跟打模式:看着单词和释义打字辨认模式:根据释义打出正确单词复习模式:巩固记忆默写模式:挑战自我记忆智能记忆曲线:系统自动计算最佳复习时间丰富资源:每个单词都配有音标、美英发音、例句、短语、近义词、词源等高效文章背诵内置经典教材...:包含多种英语学习材料自定义导入:支持添加个人文章智能辅助:一键翻译、译文对照、逐句输入、自动发音听力强化:支持边听边默写学习管理错词本:自动记录输入错误的单词收藏夹:主动收藏重点单词已掌握:标记已学会的单词安装与部署...,多端数据不同步内置词典选择有限结语TypeWords不仅仅是一个背单词工具,它是一个全新的英语学习体验。

    76100

    图文混排

    它良好的结合了 UIKit 和 Core Graphics/Quartz: UIKit 的 UILabel 允许你通过在 IB 中简单的拖曳添加文本,但你不能改变文本的颜色和其中的单词。...CoreText实现表情混排的原理,在简介中介绍过,一个CTLine代表一行,而一个CTLine又由多个CTRun组成,这里实现表情混排的原理其实就是把CTLine中的某一个CTRun替换成空白字符,然后再根据这个...5、对于每一行,布局管理器必须考虑断行行为(放不下的单词必须移到下一行)、连字符、内联的图像附件等等。...4、NSTextContainer NSTextContainer描述了文本在屏幕上显示时的几何区域,每个text container与一个具体的UITextView相关联。...5、UITextView UITextView作为显示出来的实际的文本视图,在 TextKit 中,文本视图有两个目的:第一,它是文本系统用来绘制的视图。

    2.2K30

    中国程序员容易发错音的单词「GitHub 热点速览 v.22.23」

    作者:HelloGitHub-小鱼干 中国程序员容易发错音的单词,像极了学生时代的纠错本,收录着偶尔会忘记的单词。不过,它似乎更新频率跟不上我们的进步速度,至少一半以上的单词读起来是没有压力的。...还有个非常有意思的项目是 DeepFaceLive 和 dashy,前者让你换脸没压力,当然换个角度你可以让你的对象变成“迪丽热巴”,后者则让你管理服务毫无压力。一个小图标即可访问对应的服务。...本周特推 1.1 中国程序员容易发音错误的单词:chinese-programmer-wrong-pronunciation 本周 star 增长数:500+ 它收录了部分容易读错音的单词,像是 Admin...、开箱即用的动画工具,可流畅运行在你的 Web 应用中,可同 React、Vue 或者是其他 Javascript 程序一起使用。...(限公众号),例如:AI 换头。

    45230

    使用css3属性处理单词的换行和断词

    word-break: break-all,打破了默认的换行规则。那如果想保留空格和连字符处换行怎么办?...认识word-wrap属性 属性值 解释 normal 使用浏览器默认的换行规则(默认) break-word 长单词进行换行 下来看一下演示,我把单词内部插入了几个空格 先看默认的,以作对比。...默认情况下,图上标号2和4是连续长单词,中间没有空格和连字符,所以没有换行(溢出)。...从图上看,保留了空格和连字符的换行状态。只是将前面图上标号2和4行的长单词进行了换行。...总结 word-break: break-all, 打破了浏览器的默认换行规则 word-wrap: break-word, 保留浏览器的默认换行规则,一旦一个连续长单词一行容纳不下,就只对这个长单词进行打破换行

    1.5K30

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

    ,一般用于进行输入信息的有两类:UITextField和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程中,我们需要控制键盘的弹出和收起、在输入结束的时候获取输入的信息...,并控制是否对文本框进行输入 textFieldShouldBeginEditing: 成为第一响应者,对应的相应事件就是系统调用键盘(自动弹出),并且系统会根据需要发出UIKeyboardWillShowNotification...都是自动弹出的,所以我们无需进行控制。...如果我们开发过程中一个页面有多个相同类型的输入文本框,我们可以通过设置不同的tag来区分当前的是哪一个输入文本框,从而进行不同的处理,具体示例如下: - (void)textViewDidEndEditing...  还是在之前的分析中,我们知道在键盘弹出和收起时,系统都会发出对应的通知,所以我们可以在收到键盘弹出的时候判断键盘的位置和当前输入文本框的位置,如果有遮挡,就将当前视图进行一个向上平移,在收到键盘回收的通知时就平移到原先的位置

    4.9K60

    编码篇-iOS开发中的奇巧小伎

    18.UIImage和base64互转 19.检查一个rect是否包含一个point 20.UITextView中打开或禁用复制,剪切,选择,全选等功能 21.用stringByReplacingOccurrencesOfString...上的文字 32、判断一个view是否为另一个view的子视图,或者是子试图的子试图。...45、使用xib设置UIView的边框、圆角 46、将一个xib添加到另外一个xib上 47、处理字符串,使其首字母大写 48、获取字符串中的数字 49、自动搜索功能,用户连续输入的时候不搜索,用户停止输入的时候自动搜索...view是否为另一个view的子视图,或者是子试图的子试图。...,用户连续输入的时候不搜索,用户停止输入的时候自动搜索(我这里设置的是0.5s,可根据需求更改) // 输入框文字改变的时候调用 -(void)searchBar:(UISearchBar *)searchBar

    6.4K10

    键盘工具栏的快速集成--IQKeyboardManager

    IQKeyboardManager,是一个键盘工具栏的库: 默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView...左右两个切换按钮用来切换不同的文本框 会根据文本框的键盘类型对弹出键盘的样式做出调整  排列依据是看addSubView的先后顺序 右边的done是用来收起键盘的  另外也可以设置点击空白区域收起键盘的属性...中间的文字默认是文本框的占位文字 因为这个库是单例模式的 也就是说无论在哪设置了一个属性 那么这个属性对全局都是生效的  所以一般我习惯把这个方法写在- (BOOL)application:(UIApplication...注意这个颜色是指textfile的tintcolor manager.shouldToolbarUsesTextFieldTintColor = YES; //中间位置是否显示占位文字...boldSystemFontOfSize:17]; //控制是否显示键盘上的工具条。

    1.3K140
    领券