상단에있는 UITextView의 커서가 완전히 잘 보이지만 2 번째 UITextView 바로 아래에 커서가 있어야 3-4 줄이 오게됩니다. 그래서 아래 스크린 샷에서 볼 수있는 것처럼 아무 것도 입력하지 않으면 올바르지 않습니다. 이 뷰 컨트롤러의 코드는 스크린 샷 아래에 표시됩니다.커서가 UITextView 맨 위에 있지 않은 이유는 무엇입니까?
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'는 더 이상 사용되지 않습니다. –
둘 다에 대한 선택 설정. 아무것도 알아낼 수 없습니다 .. 이것은 이상한 문제입니다. – user2278764
나는 과거보기 일뿐만 아니라 텍스트 뷰를 제거하고 다시 뷰에 추가하는 작업을 시도해 보았습니다 (제한 사항 포함). –