gpt4 book ai didi

ios - 我该如何解决表情符号被分解成字符的问题?

转载 作者:行者123 更新时间:2023-11-28 06:44:41 25 4
gpt4 key购买 nike

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

(textDocumentProxy).adjustTextPositionByCharacterOffset(-1)

并使用 Apple 提供的 textDocumentProxy.documentContextBeforeInput 函数在 UILabel 中的光标前显示单词。问题是,每当表情符号出现在标签内时,它就会开始像这样被分开: enter image description here

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

Here's我几个月前的问题一直没有得到回答

最佳答案

似乎每个偏移量都会将光标移动 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)
}

关于ios - 我该如何解决表情符号被分解成字符的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36853953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com