UITextView中的游标未对齐?

时间:2018-05-29 02:54:09

标签: ios swift textview uitextview cursor-position

我有一个textview。单击它时,蓝色光标出现在textView中。但是,这个蓝色光标太高了。它没有居中。因此,蓝色光标的上部被切断。这就是它的样子:

enter image description here

只要在textView中键入任何文本,蓝色光标就会向下移动。因此,只要键入任何文本,蓝色光标就会在屏幕中居中。正如您在此处所看到的,此处蓝色光标的定位与之前蓝色光标的定位不同。这就是它的样子:

enter image description here

如何在两种情况下都使蓝色光标的位置相同?

这是我的代码:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextViewDelegate {

    @IBOutlet weak var userMessageTextView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.userMessageTextView.delegate = self

        //Used to make the border of the TextView look the same as the border of a TextField
        userMessageTextView.layer.borderColor = UIColor(red: 0.9, green: 0.9, blue: 0.9, alpha: 1.0).cgColor
        userMessageTextView.layer.borderWidth = 1.0
        userMessageTextView.layer.cornerRadius = 5

        //Used to Make the Cursor appear somewhat centered in the TextView; Without this, the bottom of the cursor is lined up with the bottom edge of the TextView, so the cursor is not centered within the textView
        userMessageTextView.contentOffset.y = 4.0
    }
}

2 个答案:

答案 0 :(得分:0)

尝试检查UITextView的textContainetInset。

textContainerInset from Apple doc's

答案 1 :(得分:-1)

我猜你给TextView一个固定的高度,文字字体没有设置为与高度相匹配。

无论如何,UITextField更适合您的用例。我建议你改用它。