【发布时间】:2015-03-21 22:48:46
【问题描述】:
顶部 UITextView 中的光标显示完全正常,但其下方的第二个 UITextView 将光标置于其下方 3-4 行处。因此,当我在其中输入任何内容时,如下面的屏幕截图所示,这是不对的。此视图控制器的代码显示在屏幕截图下方。
class AddQuestionViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var questionTextView: UITextView!
@IBOutlet weak var answerTextView: UITextView!
@IBOutlet weak var doneBarButton: UIBarButtonItem!
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var answerLabel: UILabel!
weak var delegate: AddQuestionViewControllerDelegate?
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.questionTextView.layer.borderWidth = 0.5
self.questionTextView.layer.borderColor = UIColor.lightGrayColor().CGColor
self.questionTextView.layer.cornerRadius = 8
self.answerTextView.layer.borderWidth = 0.5
self.answerTextView.layer.borderColor = UIColor.lightGrayColor().CGColor
self.answerTextView.layer.cornerRadius = 8
self.questionTextView.becomeFirstResponder()
}
@IBAction func cancel() {
delegate?.addQuestionViewControllerDidCancel(self)
}
@IBAction func done() {
let item = Question()
item.question = questionTextView.text
item.answer = answerTextView.text
item.checked = false
delegate?.addQuestionViewController(self, didFinishAddingQuestion: item)
}
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if textView == questionTextView {
let oldText: NSString = questionTextView.text
let newText: NSString = oldText.stringByReplacingCharactersInRange(range, withString: text)
if newText.length > 0 {
doneBarButton.enabled = true
} else {
doneBarButton.enabled = false
}
}
return true
}
func textViewDidChange(textView: UITextView) {
let temp: NSString = textView.text
if textView == questionTextView {
self.questionLabel.hidden = temp.length > 0
} else {
self.answerLabel.hidden = temp.length > 0
}
}
func textViewDidEndEditing(textView: UITextView) {
let temp: NSString = textView.text
if textView == questionTextView {
self.questionLabel.hidden = temp.length > 0
} else {
self.answerLabel.hidden = temp.length > 0
}
}
}
【问题讨论】:
-
我不是 IOS 开发人员(只是 OSX):检查 IB 中的设置,它们可能会有所不同。此外 (OSX)
becomeFirstResponder已弃用。 -
检查了两者的设置。什么都没发现..这是一个奇怪的问题。
-
我在过去的视图中也遇到过这种情况,删除 textview 并将其再次添加到视图中(带有约束)似乎有效。
-
请看下面的答案,我想你需要这个。 stackoverflow.com/questions/18931934/…
标签: ios xcode swift autolayout uitextview