Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.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 在UITextView中获取文本后如何设置文本对齐?_Ios_Iphone_Alignment_Uitextview - Fatal编程技术网

Ios 在UITextView中获取文本后如何设置文本对齐?

Ios 在UITextView中获取文本后如何设置文本对齐?,ios,iphone,alignment,uitextview,Ios,Iphone,Alignment,Uitextview,我试图在文本方向的基础上设置textAlignment如果我的textView有文本(从右到左像阿拉伯语)方向,那么我想设置textAlignmentNSTextAlignmentRight否则我的对齐方式将是NSTextAlignmentLeft。现在的问题是,我知道如何在输入UITextView时检查文本方向,但一旦我们在UITextView中获得文本,我们就可以如何检查它。下面是我的截图和代码 if ([self.txtOutputTranslator baseWritingDirect

我试图在文本方向的基础上设置
textAlignment
如果我的
textView
有文本(从右到左像阿拉伯语)方向,那么我想设置textAlignment
NSTextAlignmentRight
否则我的对齐方式将是
NSTextAlignmentLeft
。现在的问题是,我知道如何在输入
UITextView
时检查文本方向,但一旦我们在
UITextView
中获得文本,我们就可以如何检查它。下面是我的截图和代码

 if ([self.txtOutputTranslator baseWritingDirectionForPosition:[self.txtOutputTranslator beginningOfDocument] inDirection:UITextStorageDirectionForward] == UITextWritingDirectionLeftToRight)
{
    self.txtOutputTranslator.textAlignment=NSTextAlignmentLeft;
}
else
{
    self.txtOutputTranslator.textAlignment=NSTextAlignmentRight;

}


正如我的代码所示,我在获取输出文本后检查文本方向,但它始终运行else条件,因为我已在属性中将
UITextView
对齐设置为Right。如有任何建议,将不胜感激。提前感谢。

baseWritingDirectionForPosition方法似乎根据textview的TextAlignment

因此,您需要根据语言检查书写方向。 由于您是手动执行应用程序,因此可以检查要翻译的语言,并且您可以已经指定哪些语言是rtl或ltr

为了进一步阅读,您可以查看 和

但你的问题应该容易得多。
祝你好运

@TechSeeko的答案是正确的,下面是Swift 4示例:

func textViewDidChange(_ textView: UITextView) {
    let baseWritingDirection = textView.baseWritingDirection(for: textView.beginningOfDocument, in: .forward)
    switch baseWritingDirection {
    case .leftToRight:
        textView.textAlignment = .left // for example
    case .rightToLeft:
        textView.textAlignment = .right // for example
    case .natural:
        // WARNING: use natural alignment carefully as it won't work with reusable table view cells. In common cases baseWritingDirection won't return this parameter
        textView.textAlignment = .natural
    }
}

你愿意接受建议吗?您可以将所有文本居中对齐,这样就不必担心文本是左还是右。寻找最佳解决方案将是最后的选择。顺便说一句,谢谢您的建议。:)