我有一个textview。单击它时,蓝色光标出现在textView中。但是,这个蓝色光标太高了。它没有居中。因此,蓝色光标的上部被切断。这就是它的样子:
只要在textView中键入任何文本,蓝色光标就会向下移动。因此,只要键入任何文本,蓝色光标就会在屏幕中居中。正如您在此处所看到的,此处蓝色光标的定位与之前蓝色光标的定位不同。这就是它的样子:
如何在两种情况下都使蓝色光标的位置相同?
这是我的代码:
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
}
}
答案 0 :(得分:0)
尝试检查UITextView的textContainetInset。
答案 1 :(得分:-1)
我猜你给TextView一个固定的高度,文字字体没有设置为与高度相匹配。
无论如何,UITextField更适合您的用例。我建议你改用它。