iOS开发之TextField禁用粘贴、选择和全选功能
众所周知,TextField默认情况下,双击会出现“Paste”等提示复制粘贴的快捷菜单,方便用户快速编辑文本,但很多情况下,我们并不希望用户能够粘贴文本【虽然这样不友好,但万一产品经理要这么实现呢?】,那么我们可以这样做:
方法
自定义TextField
重写canPerformAction方法
class CustomTextField: UITextField { /// 是否只是用于显示(禁用粘贴、选择和全选功能) var displayOnly = false /// 禁用粘贴 var disablePaste = false /// 禁用选择 var disableSelect = false /// 禁用全选 var disableSelectAll = false override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool { if displayOnly { return false } if disablePaste && action == #selector(paste(_:)) { return false } if disableSelect && action == #selector(select(_:)) { return false } if disableSelectAll && action == #selector(selectAll(_:)) { return false } return super.canPerformAction(action, withSender: sender) } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
ios微信浏览器返回不刷新问题完美解决方法
开始用的表单提交,返回参数就丢失,换成url跳转,popstate监听 (注释部分)ios10测试始终有问题,继续搜,最后用pageshow,pagehide完美解决(另外说一句:珍爱生命,远离微信和ios) var wxback = { init :function(){ //隐藏微信分享按钮等 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { WeixinJSBridge.call('hid
-
Android实现类似iOS风格的对话框实例代码
分享一个简单的常用的对话框类,按照国际惯例,先上图 布局简单,先上布局.一个标题,一个内容,两个按钮 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout an
-
IOS 中弹框的实现方法整理
IOS 中弹框的实现方法整理 #define iOS8Later ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0) ios 8以前的弹框 @interface RootViewController ()<UIAlertViewDelegate> @end UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"登陆失败" message:
-
IOS 开发之读取addressbook的实现实例
IOS 开发之读取addressbook的实现实例 iphone读取addressbook: 1.添加addressbook.framework 2.在需要的源文件中 #import <AddressBook/AddressBook.h> #import <AddressBookUI/AddressBookUI.h> 3.开始粘代码: //get all people info from the address book ABAddressBookRef addressBo
-
IOS开发之手势响应事件优先级的实例详解
IOS开发之手势响应事件优先级的实例详解 交互响应事件都是通过手势的操作完成的,如点击.或双击.或长按,这些交互都是在视图中完成的,但是不同的视图可能会有不同的交互,有时候就会出现交互响应事件冲突的情况.这时候就需要处理事件优先级,以便达到想要的效果. 示例场景:一个自定义模式视图view中,有一个列表视图table,同时有一个确定的按钮视图button:在view中有一个单击事件UITapGestureRecognizer,在table中点击每个cell也会有点击事件,同样的button中有个
-
JS解决IOS中拍照图片预览旋转90度BUG的问题
上篇文章[Js利用Canvas实现图片压缩功能]中做了图片压缩上传,但是在IOS真机测试的时候,发现图片预览的时候自动逆时针旋转了90度.对于这个bug,我完全不知道问题出在哪里,接下来就是面向百度编程了.通过度娘找到了相关资料,解决方法记录在此.这个问题的具体因素其实我还是不清楚是为何导致的,只有IOS和部分三星手机会出现此bug. 绝大部分的安卓机并无此问题. 解决此问题需要引入一个第三方 JS 库: exif.js 下载地址:https://github.com/exif-js/exif-
-
iOS开发之TextField禁用粘贴、选择和全选功能
众所周知,TextField默认情况下,双击会出现"Paste"等提示复制粘贴的快捷菜单,方便用户快速编辑文本,但很多情况下,我们并不希望用户能够粘贴文本[虽然这样不友好,但万一产品经理要这么实现呢?],那么我们可以这样做: 方法 自定义TextField 重写canPerformAction方法 class CustomTextField: UITextField { /// 是否只是用于显示(禁用粘贴.选择和全选功能) var displayOnly = false /// 禁用粘
-
iOS开发之UIMenuController使用示例详解
目录 简介 接口介绍 使用探索 如何创建并显示 UIMenuController 实现 Item 点击事件 菜单 Item 太多??? UIResponderStandardEditActions 协议 添加自定义菜单 箭头的方向 实际使用 总结 简介 UIMenuController 是一个菜单编辑界面,在很多地方都能用到,通常用于剪切.复制.粘贴.选择.全选和删除命令等,也可以自定义想要的操作,它长这样: 接口介绍 open class UIMenuController : NSObject
-
IOS 开发之UITextField的光标操作扩展
IOS 开发之UITextField的光标操作扩展 简介 在iOS开发中,有时候需要完全自主的定义键盘,用于完整的单词输入,例如计算机应用中,需要一次性的输入sin(,在移动光标时要完整的跳过sin(,在删除时也要完整的删除,这就需要对光标的位置进行精确控制,而ios并没有相关的函数可以直接操作光标,只给出了选择某个区域的功能,本文将介绍基于区域选择设计的UITextField扩展,用于获取光标位置以及移动光标. 实现原理 光标位置的获取 在textField中,有一个属性称之为selected
-
IOS 开发之 UITextField限制字数的方法
IOS 开发之 UITextField限制字数的方法 在输入东西的时候,如果想限制最大字数,可以用下面方法: 实例代码: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; { if ([string isEqualToString:@"\n"]) { return YES; } NSSt
-
IOS 开发之PickerView文字和随机数的使用
IOS 开发之PickerView文字和随机数的使用 PickerView用于展示供选择的内容(例如日期选取.点菜等). 有三种情况: 1.每一列都是独立的选取 2.右边的列受到左边列的影响 3.包含图片 PickerView和TableView类似,通过数据源来显示数据,与TableView同样地,让控制器称为其数据源. 但是PickerView的数据源仅仅提供行数和列数,在代理方法内才能设置内容. 通过两个数据源方法设置行和列数,通过一个代理方法来设定内容,注意component表示第几列:
-
实例详解IOS开发之UIWebView
iOS开发之UIWebView 是本文要介绍的内容,UIWebView是iOS sdk中一个最常用的控件.是内置的浏览器控件,我们可以用它来浏览网页.打开文档等等.这篇文章我将使用这个控件,做一个简易的浏览器.如下图: 我们创建一个Window-based Application程序命名为:UIWebViewDemo UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数.我们定义一个方法用来加载url.在UIWebViewDemoViewC
-
IOS 开发之PickerView自定义视图的实例详解
IOS 开发之PickerView自定义视图的实例详解 例如选择国家,左边是名称右边是国家,不应该使用两列,而是自定义PickerView的一列,可以通过xib来实现. 注意,虽然PickerView也是一列,但是数据源方法是@required,所以必须实现. 因此,核心思想就是一列,自定义PickerView的行视图. 使用viewForRow方法可以设定行视图. 这样的视图可以通过xib和它的控制器进行封装: Xib的控制器继承自UIView类即可. 控制器维护一个用于设置数据的模型对象fl
-
iOS开发之UIKeyboardTypeNumberPad数字键盘自定义按键
最近做一个搜索用户的功能,这里使用了UISearchBar.由于搜索的方式只有手机号码,所以这里的键盘要限制为数字输入,可以这么做: self.searchBar.keyboardType = UIKeyboardTypeNumberPad;如果使用的不是搜索框而是textField输入框,可以设置textField的键盘属性来展示 self.textField.keyboardType = UIKeyboardTypeNumberPad;监听事件如下所示即可. 但是这里有个问题,就是数字键盘上
-
IOS开发之UIScrollView实现图片轮播器的无限滚动
IOS开发之UIScrollView实现图片轮播器的无限滚动 简介 在现在的一些App中常常见到图片轮播器,一般用于展示广告.新闻等数据,在iOS内并没有现成的控件直接实现这种功能,但是通过UIScrollView的允许分页设置,可以实现滚动轮播的功能. 轮播原理 UIScrollView对象有pagingEnable成员,如果设置为YES,那么每一个scrollView尺寸这么大的区域就会被当作一页,在滚动时会根据滚动的比例自动计算应该切换到哪一页. 无限滚动原理 要实现无限滚动,需要额外的两
-
IOS开发之@property的详细介绍
IOS开发之@property的详细介绍 在类中定义属性时,总会使用到@property进行定义,下面就来说说@property的使用. 在使用过程中,如果需求公开且在其他类中使用时,通常会定义在.h头文件中:而如果只是该类自已需要使用,这时则会定义 在.m实现文件中. 使用格式 @property (参数1, 参数2, 参数3, ...) 参数类型 参数名称 参数包括三个种类,七个属性,如下图所示. 在使用过程中,有几点需要注意: (1)原子性定义中,如果没有涉及到多线程环境时,通常不会使用默
随机推荐
- jQuery插件zepto.js简单实现tab切换
- VBS For Next循环的一些细节
- Java微信公众平台开发(13) 微信JSSDK中Config配置
- JavaScript实现经典排序算法之插入排序
- Python获取apk文件URL地址实例
- php创建多级目录的方法
- 一个ASP创建动态对象的工厂类(类似PHP的stdClass)
- 详解如何用docker安装laravel开发环境
- 多浏览器兼容的qq图片轮换效果javascript代码
- ssh自动登录的4种实现方法
- 浅谈ctrl+c,ctrl+d,ctrl+z在linux中的意义
- C#中Action和Func的区别
- 封装了一个js图片轮换效果的函数
- 传奇私服人物死亡自动复活回城的修改
- Python json模块使用实例
- 在PHP3中实现SESSION的功能(一)
- php 判断数组是几维数组
- iOS 请求权限封装类的实例代码
- MySQL中(JOIN/ORDER BY)语句的查询过程及优化方法
- tomcat性能优化之如何搭建Apr模块