美文网首页
iOS 扩展键盘获取长文本

iOS 扩展键盘获取长文本

作者: 红叶潇潇 | 来源:发表于2024-09-18 16:01 被阅读0次

    苹果为了保护用户隐私,键盘只能获取光标附近的50-100左右的字符,但是做为扩展键盘应用,有时候会有获取所有文案的需求,通过循环删除,发现textDocumentProxy并没有更新,所以pass掉删除获取的方法,后续发现通过调整光标位置textDocumentProxy会更新,然后循环获取即可

    不废话直接上代码

    -(void)checkAllString{
        NSString *string = [self.textDocumentProxy.documentContextBeforeInput copy];
        if(string.length <= 0){
            // 光标恢复回去
            [self.textDocumentProxy adjustTextPositionByCharacterOffset:self.currentText.length];
            
           // 获取完成,做自己的操作即可
            return;
        }
        
        self.currentText = [NSString stringWithFormat:@"%@%@",string,self.currentText];
        // 光标向前移动
        [self.textDocumentProxy adjustTextPositionByCharacterOffset:-string.length];
        
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [self checkAllString];
        });
    }
    

    相关文章

      网友评论

          本文标题:iOS 扩展键盘获取长文本

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