谁有盛势网络剧海外版云盛势的全集百度云资源!求提供啊!!!!

3482人阅读
监听键盘删除键 监听删除 UITextView删除 UITextField删除
最近做了一个使用键盘删除键删东西的功能,UITextView监听删除键:
#pragma mark - UITextViewDelegate
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString
isEqualToString:@&&]) {
后来在别的地方要用UITextField这个控件,起初在网上找到了这个方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
if&([text&isEqualToString:@&&]) {
跟textView类似可以监听到删除,但是在textField没有字符串时系统键盘监听不到点击了删除按钮,尼玛啊,我要用的就是没字时删除!!!
网上也没有其他办法,没办法只能自己研究它,潜心研究。。。终于自己实现了一种优雅的方式监听删除键,哈哈哈
先说原理UITextField其实里面用的是UIKeyInput,先看UIKeyInput.h
@protocol UIKeyInput &UITextInputTraits&
- (BOOL)hasT
- (void)insertText:(NSString *)
- (void)deleteB &
&-------就是它删除方法
使用首先继承&UITextField:
#import &UIKit/UIKit.h&
@class YNTextField;
@protocol YNTextFieldDelegate &NSObject&
- (void)ynTextFieldDeleteBackward:(YNTextField *)textF
@interface YNTextField :
UITextField
@property (nonatomic,
assign) id &YNTextFieldDelegate& yn_
再看.m文件
#import &YNTextField.h&
@implementation YNTextField
- (void)deleteBackward {
& & !!!这里要调用super方法,要不然删不了东西
& & [super
deleteBackward];
& & if ([self.yn_delegate
respondsToSelector:@selector(ynTextFieldDeleteBackward:)]) {
& & & & [self.yn_delegate
ynTextFieldDeleteBackward:self];
然后使用就用这个继承的控件实现代理,就完工了。是不是So easy
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5917次
排名:千里之外
(1)(2)(4)(6)登录后方可回复
@天义 : 键盘挡住输入了,就把视图坐标再往上调点嘛,自己算下坐标就行了,没必要判断这个
登录后方可回复
@素城灬丿独演丶爱恨情愁 : 目的是往上再调一点。只不过是想让它在切换成中文输入法的状态下,在原来已经调高的基础上,再调高一点。因为中英文输入法的状态不同,键盘的高度也就不同。如果直接调成中文输入法的高度,那么在英文状态,就会空出一条,显得难看。
登录后方可回复
键盘切换是有通知的。你做个监听就行了
登录后方可回复
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillChangeFrame:)
name:UIKeyboardWillChangeFrameNotification
登录后方可回复
多谢几位大神的回复
登录后方可回复
登录后方可回答

我要回帖

更多关于 盛势网络剧百度云30集 的文章

 

随机推荐