Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift中的UITextStorageDirection和UITextLayoutDirection枚举是什么?_Ios_Swift_Uikit - Fatal编程技术网

Ios Swift中的UITextStorageDirection和UITextLayoutDirection枚举是什么?

Ios Swift中的UITextStorageDirection和UITextLayoutDirection枚举是什么?,ios,swift,uikit,Ios,Swift,Uikit,有人能解释一下什么是苹果的UIKit框架中的UITextStorageDirection和UITextLayoutDirection,因为没有太多的文档来解释这两个枚举是什么,它们之间的区别是什么 另外,我想看一些关于文本字符串的示例,这两个枚举在给定文本中代表什么?:-文本存储的方向。 设置一个值,该值控制光标是显示在多行选择的最后一行的起点还是第二行到最后一行的终点 对于跨行边界换行的文本选择,此属性确定插入点是显示在行的最后一个字符之后,还是显示在下一行的第一个字符之前。选择关联是为响应用

有人能解释一下什么是苹果的
UIKit
框架中的
UITextStorageDirection
UITextLayoutDirection
,因为没有太多的文档来解释这两个枚举是什么,它们之间的区别是什么

另外,我想看一些关于文本字符串的示例,这两个枚举在给定文本中代表什么?

:-文本存储的方向。 设置一个值,该值控制光标是显示在多行选择的最后一行的起点还是第二行到最后一行的终点

对于跨行边界换行的文本选择,此属性确定插入点是显示在行的最后一个字符之后,还是显示在下一行的第一个字符之前。选择关联是为响应用户通过键盘导航而设置的(例如,命令右箭头)。文本输入系统在文档中移动插入点时会检查此属性。 -案例

:-文本布局的方向。 该方法目前有点缺陷,因为它不需要 UIExtLayoutDirectionUp和UIExtLayoutDirectionDown被考虑在内

这个补丁主要是为了修复一些“以防万一”的东西,因为 到目前为止,我们还没有看到UIKit为这些对象调用此方法 方向,除非连接了硬件键盘。而且 在这种情况下,我们通过处理 使用明确的箭头键

因为Qt中的IM不支持获取上述位置 或者低于当前位置,我们只返回当前值 位置,使其成为禁止操作

元数据ID

获取光标位置 设置光标位置 为了设置位置,所有这些方法实际上都是使用相同的起始值和结束值设置范围

从头开始

let newPosition = textView.beginningOfDocument
textView.selectedTextRange = textView.textRange(from: TextPosition, to: TextPosition)
到最后

let newPosition = textView.endOfDocument
textView.selectedTextRange = textView.textRangeFromPosition(newPosition, toPosition: newPosition)
到当前光标位置左侧的一个位置

// only if there is a currently selected range
if let selectedRange = textView.selectedTextRange {

    // and only if the new position is valid
    if let newPosition = textView.position(from: selectedRange.start in: UITextLayoutDirection.Left, offset: 1) {

        // set the new position
        textView.selectedTextRange = textView.textRange(from: TextPosition, to: TextPosition)
    }
}
到任意位置

// only if there is a currently selected range
if let selectedRange = textView.selectedTextRange {

    // and only if the new position is valid
    if let newPosition = textView.position(from: selectedRange.start in: UITextLayoutDirection.Left, offset: 1) {

        // set the new position
        textView.selectedTextRange = textView.textRange(from: TextPosition, to: TextPosition)
    }
}
从开头开始,向右移动5个字符

let arbitraryValue: Int = 5
if let newPosition = 
textView.position(from: textView.beginningOfDocument in: UITextLayoutDirection.Right, offset: arbitraryValue) {

    textView.selectedTextRange = textView.textRange(from: TextPosition, to: TextPosition)
}

我知道,我已经研究过了,但是他们的文档没有解释这两个类,以及这两个类之间的区别,比如何时使用一个类,何时使用另一个类?你混淆了类的枚举。这两个是枚举。从我通过快速查看收集的信息来看,它是用来处理从右到左书写的语言,比如乌尔都语,或者从上到下书写的古代汉语文本。休息一下,你可以到处闲逛。或者把你的发现放在博客上;)好的,谢谢你,现在有些东西更有意义了什么是文本存储,什么是文本布局?他们之间有什么区别?你能给它一个例子文本,如:快速棕色狐狸跳过懒惰的狗。现在更新检查
let newPosition = textView.endOfDocument
textView.selectedTextRange = textView.textRangeFromPosition(newPosition, toPosition: newPosition)
// only if there is a currently selected range
if let selectedRange = textView.selectedTextRange {

    // and only if the new position is valid
    if let newPosition = textView.position(from: selectedRange.start in: UITextLayoutDirection.Left, offset: 1) {

        // set the new position
        textView.selectedTextRange = textView.textRange(from: TextPosition, to: TextPosition)
    }
}
let arbitraryValue: Int = 5
if let newPosition = 
textView.position(from: textView.beginningOfDocument in: UITextLayoutDirection.Right, offset: arbitraryValue) {

    textView.selectedTextRange = textView.textRange(from: TextPosition, to: TextPosition)
}