textfield监听删除按键 包括没有输入文字时(ios8 也可以使用)
来源:互联网 发布:表格中数据单位转换 编辑:程序博客网 时间:2024/06/05 21:56
@interface PFTextfield : UITextField
@end
--------------@implementation PFTextfield
/**
* 调用的私有方法,子类中重写该方法,父类执行
*
* 用途:主要应用于ios8中没有输入文字时调用删除按钮
*
* @param textField textfield
*
* @return 是否可以删除
*/
- (BOOL)keyboardInputShouldDelete:(UITextField *)textField {
BOOL shouldDelete =YES;
if ([UITextFieldinstancesRespondToSelector:_cmd]) {
BOOL (*keyboardInputShouldDelete)(id,SEL, UITextField *) = (BOOL (*)(id,SEL, UITextField *))[UITextFieldinstanceMethodForSelector:_cmd];
if (keyboardInputShouldDelete) {
shouldDelete = keyboardInputShouldDelete(self,_cmd, textField);
}
}
BOOL isIos8 = ([[[UIDevicecurrentDevice] systemVersion]intValue] == 8);
BOOL isLessThanIos8_3 = ([[[UIDevicecurrentDevice] systemVersion]floatValue] < 8.3f);
if (![textField.textlength] && isIos8 && isLessThanIos8_3) {
[selfdeleteBackward];
}
return shouldDelete;
}
@end
==========================
@protocol TextFieldDeleteDelegate <UITextFieldDelegate>
@optional
- (void)textFieldDidDeleteBackward:(UITextField *)textField;
@end
@interface UITextField (DeleteButton)
@property (weak,nonatomic) id<TextFieldDeleteDelegate> delegate;
@end
/**
* 监听删除按钮
* object:UITextField
*/
extern NSString *const CustomTextFieldDidDeleteBackwardNotification;
------------
#import "UITextField+DeleteButton.h"
#import <objc/runtime.h>
NSString * const CustomTextFieldDidDeleteBackwardNotification =@"com.custom.textfield.did.notification";
@implementation UITextField (WJ)
+ (void)load {
//交换2个方法中的IMP
Method method1 =class_getInstanceMethod([selfclass], NSSelectorFromString(@"deleteBackward"));
Method method2 =class_getInstanceMethod([selfclass], @selector(wj_deleteBackward));
method_exchangeImplementations(method1, method2);
}
- (void)wj_deleteBackward {
[selfwj_deleteBackward];
if ([self.delegaterespondsToSelector:@selector(textFieldDidDeleteBackward:)])
{
id <TextFieldDeleteDelegate> delegate = (id<TextFieldDeleteDelegate>)self.delegate;
[delegate textFieldDidDeleteBackward:self];
}
[[NSNotificationCenterdefaultCenter] postNotificationName:CustomTextFieldDidDeleteBackwardNotificationobject:self];
};
@end
获取资料于:
http://stackoverflow.com/questions/25354467/detect-backspace-in-uitextfield-in-ios8
====
http://www.jianshu.com/p/d2c2f4aaef0d
- textfield监听删除按键 包括没有输入文字时(ios8 也可以使用)
- android 文本输入框文字改变监听-输入值显示,没有值删除按钮消失
- UITextField实时跟踪输入文字的个数,超过禁止输入并阶段(UITextView也可以使用类似方法)
- 监听 textfield的输入
- UITextField可以快捷监听输入框输入文字
- 知识片段---textfield限制字符输入个数(包括汉子)
- iOS 监听textfield的输入
- 监听textfield输入的长度
- ios textField 输入值监听
- iOS 监听textfield的输入
- 监听textfield的输入方法
- TextField 输入提示文字浮动
- 数据库表没有单一主键时,可以使用ROWID作为主键删除数据(Oracle)
- Extjs TextField 同步输入 监听事件
- RadioButton文字前面那个圆圈也可以使用颜色选择器
- Kuix TextField 输入文字改变长度问题
- textView和textField 限制文字输入字数
- 在模态视图的textField输入的文字改变首页的Label文字(使用代理和消息机制实现)
- 使用AdMob实现广告统一
- String.format方法,Java常用类库——Formatter
- 安卓 Volley+OkHttp3+Gson(Jackson)开源库的封装过程
- Keil-MDK编译完成后代码大小
- POJ 2096
- textfield监听删除按键 包括没有输入文字时(ios8 也可以使用)
- 设置CATALINA_HOME环境变量
- arm-linux-androideabi-readelf
- UICollectionView Custom layout UICollectionViewDelegateFlowLayout-横向滚动 中间吸附 布局
- kubernetes源码编译
- getx,gety,getwidth,getheight获取控件大小,高度为0
- web学习
- Android实现简易轻量下载器:单线程任务队列
- 连续累计计算