美文网首页
iOS UITextField点击选中编辑问题

iOS UITextField点击选中编辑问题

作者: 大宝来巡山 | 来源:发表于2023-04-06 10:01 被阅读0次

有时候产品有这种需求:用户点击输入框上已经输入的文字,点击到某一个字符上,可以选中当前字符,并且可以拉伸缩小选择框,然后编辑或者删除字符;但是UITextField输入框,系统默认会给一个推荐的选中逻辑,特别是没有规律的英文数字之类的,当用户点击时,要么不能选中,要么全选,非常不符合用户的实际需求;解决办法是,修改系统的推荐选中规则,改为自己想要的选中规则,点击字符即选中,选中之后就会出现编辑框,方便用户拉伸缩小编辑文字;不多说,代码如下:

自定义iOS DBTextField继承系统UITextField控件:
.h文件


#import 

NS_ASSUME_NONNULL_BEGIN

@interface DBTextField : UITextField

@end

NS_ASSUME_NONNULL_END


.m 文件
#import "DBTextField.h"

@implementation DBTextField

- (UIView*)hitTest:(CGPoint)pointwithEvent:(UIEvent*)event {

    //方式一

    NSLog(@"点击位置 === %f",point.x);

    UITextRange*recommendedRange = [selfcharacterRangeAtPoint:point];

    NSLog(@"推荐位置 === %@",recommendedRange.start);

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        self.selectedTextRange= recommendedRange;

    });

    return[superhitTest:pointwithEvent:event];



}

@end

使用时,只需要将想要实现这种效果的输入框,改成DBTextField就可以了,非常方便

相关文章

网友评论

      本文标题:iOS UITextField点击选中编辑问题

      本文链接:https://www.haomeiwen.com/subject/geveddtx.html