热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我怎样才能解决被分解为角色的表情符号?-HowcanIworkaroundtheemojibeingbrokenupintocharacters?

InmyiOSkeyboardextension,Ihaveafunctionthatmovesthecursorbackwardsasfollows:在我的iOS键

In my iOS keyboard extension, I have a function that moves the cursor backwards as follows:

在我的iOS键盘扩展中,我有一个向下移动光标的功能,如下所示:

(textDocumentProxy).adjustTextPositionByCharacterOffset(-1)

and displays the words right before the cursor in a UILabel using the textDocumentProxy.documentContextBeforeInput function provided by Apple. The problem is, whenever an emoji appears inside the label, it starts being separated as such: enter image description here

并使用Apple提供的textDocumentProxy.documentContextBeforeInput函数在UILabel中显示光标前的单词。问题是,只要表情符号出现在标签内部,它就会开始分离:

Is there any way of avoiding this? Does it have anything to do with me hardcoding the -1? I've tried using str.utf16.countbut that just doesn't scroll at all for some reason. Any help would be greatly appreciated.

有没有办法避免这种情况?这与我硬编码-1有什么关系吗?我已经尝试过使用str.utf16.count但由于某种原因根本不滚动。任何帮助将不胜感激。

Here's my question from a few months ago that never got answered

这是我几个月前的问题,从来没有得到答案

1 个解决方案

#1


1  

It appears that each offset will move the cursor by 16 bit and any characters with 32 bit will be cut in half. So the solution is for every 32 bit characters we move the cursor by 2 instead of 1.

看起来每个偏移都会将光标移动16位,任何32位字符都会被切成两半。因此解决方案是每32位字符,我们将光标移动2而不是1。

func moveCursorBy(offset: Int, onProxy proxy: UITextDocumentProxy){
    var realOffset = 0
    if offset <0, let text = proxy.documentContextBeforeInput {
        for uni in text.unicodeScalars.reverse().prefix(abs(offset)){
            realOffset -= uni.value > 0xFFFF ? 2 : 1
        }
    }
    else if offset > 0, let text = proxy.documentContextAfterInput{
        for uni in text.unicodeScalars.prefix(abs(offset)) {
            realOffset += uni.value > 0xFFFF ? 2 : 1
        }
    }
    else{
        realOffset = offset
    }
    proxy.adjustTextPositionByCharacterOffset(realOffset)
}

推荐阅读
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • [echarts] 同指标对比柱状图相关的知识介绍及应用示例
    本文由编程笔记小编为大家整理,主要介绍了echarts同指标对比柱状图相关的知识,包括对比课程通过率最高的8个课程和最低的8个课程以及全校的平均通过率。文章提供了一个应用示例,展示了如何使用echarts制作同指标对比柱状图,并对代码进行了详细解释和说明。该示例可以帮助读者更好地理解和应用echarts。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议 ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • 涉及的知识点-ViewGroup的测量与布局-View的测量与布局-滑动冲突的处理-VelocityTracker滑动速率跟踪-Scroller实现弹性滑动-屏幕宽高的获取等实现步 ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • html结构 ... [详细]
  • 本文实例讲述了Android编程实现读取工程中的txt文件功能。分享给大家供大家参考,具体如下:1.众所周知,Android的res文件夹 ... [详细]
author-avatar
陈雅杰昱宏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有