• UITextField 长按文本框指定删除某个位置内容


    普通的光标移动,点键盘的删除键,会从最后一位删除,加一UITextField的分类即可

    #import <UIKit/UIKit.h>
    
    @interface UITextField (ExtentRange)
    - (NSRange) selectedRange;
    - (void) setSelectedRange:(NSRange) range;  
    @end
    
    #import "UITextField+ExtentRange.h"
    
    @implementation UITextField (ExtentRange)
    - (NSRange) selectedRange
    {
        UITextPosition* beginning = self.beginningOfDocument;
        
        UITextRange* selectedRange = self.selectedTextRange;
        UITextPosition* selectionStart = selectedRange.start;
        UITextPosition* selectionEnd = selectedRange.end;
        
        const NSInteger location = [self offsetFromPosition:beginning toPosition:selectionStart];
        const NSInteger length = [self offsetFromPosition:selectionStart toPosition:selectionEnd];
        
        return NSMakeRange(location, length);
    }
    
    - (void) setSelectedRange:(NSRange) range  // 备注:UITextField必须为第一响应者才有效
    {
        UITextPosition* beginning = self.beginningOfDocument;
        
        UITextPosition* startPosition = [self positionFromPosition:beginning offset:range.location];
        UITextPosition* endPosition = [self positionFromPosition:beginning offset:range.location + range.length];
        UITextRange* selectionRange = [self textRangeFromPosition:startPosition toPosition:endPosition];
        
        [self setSelectedTextRange:selectionRange];
    }  
    @end
    
    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    基于jQuery弹性展开收缩菜单插件gooey.js
    动态插入和移除
    匹配0-59 0-23 的正则表达式
    换行问题
    iOSBug -- The file “Info.plist” couldn’t be opened
    MarkDown语法
    Mac -- 右键添加pages文件
    iOS -- 使用蒲公英进行内测
    Mac使用技巧--如何给safari安装翻译插件
    iOS--优化
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/10199955.html
Copyright © 2020-2023  润新知