美文网首页
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