diff --git a/35-seminar/Presentation/Week2/View/FeedbackWriteView.swift b/35-seminar/Presentation/Week2/View/FeedbackWriteView.swift index 63a2ff8..32afe08 100644 --- a/35-seminar/Presentation/Week2/View/FeedbackWriteView.swift +++ b/35-seminar/Presentation/Week2/View/FeedbackWriteView.swift @@ -12,6 +12,7 @@ class FeedbackWriteView: UIView { // MARK: - Properties var starCount: Int = 0 + let textViewPlaceHolder = "리뷰(선택사항)" private let titleLabel = UILabel() let cancelButton = UIButton() @@ -20,8 +21,8 @@ class FeedbackWriteView: UIView { let tapToRateStarStackView = StarStackView() private let tapToRateGuideLabel = SubtitleLabel() - let feedbackStackView = UIStackView() - let feedbackTitleTextField = UITextField() + private let feedbackStackView = UIStackView() + private let feedbackTitleTextField = UITextField() let feedbackTextView = UITextView() // MARK: - Methods @@ -55,10 +56,10 @@ class FeedbackWriteView: UIView { feedbackTitleTextField.font = .systemFont(ofSize: 17, weight: .regular) feedbackTitleTextField.setContentHuggingPriority(.defaultHigh, for: .vertical) - feedbackTextView.text = "리뷰(선택사항)" feedbackTextView.textContainerInset = .zero feedbackTextView.textContainer.lineFragmentPadding = 0 feedbackTextView.font = .systemFont(ofSize: 17, weight: .regular) + setTextViewPlaceholder() } private func setHierarchy() { @@ -112,12 +113,38 @@ class FeedbackWriteView: UIView { } } + func setTextViewPlaceholder() { + feedbackTextView.text = textViewPlaceHolder + feedbackTextView.textColor = .systemGray4 + } + + func setTextViewToWrite() { + if feedbackTextView.text == textViewPlaceHolder { + feedbackTextView.text = nil + feedbackTextView.textColor = .label + } + } + + func setTextViewToEnd() { + let isPlaceHolder = feedbackTextView.text == textViewPlaceHolder + let isEmpty = feedbackTextView.text.isEmpty + + if isPlaceHolder || isEmpty { + setTextViewPlaceholder() + } + } + func returnFeedback() -> Feedback { + var content = feedbackTextView.text + if content == textViewPlaceHolder { + content = nil + } + let feedback = Feedback(title: feedbackTitleTextField.text, author: "김유림", starCount: starCount, authorDate: Date(), - content: feedbackTextView.text, + content: content, developerContent: nil, developerDate: nil) return feedback diff --git a/35-seminar/Presentation/Week2/View/FeedbackWriteViewController.swift b/35-seminar/Presentation/Week2/View/FeedbackWriteViewController.swift index 4d11648..7bbcf83 100644 --- a/35-seminar/Presentation/Week2/View/FeedbackWriteViewController.swift +++ b/35-seminar/Presentation/Week2/View/FeedbackWriteViewController.swift @@ -22,6 +22,7 @@ class FeedbackWriteViewController: UIViewController { super.viewDidLoad() setButtonAction() setStarStackViewGesture() + feedbackWriteView.feedbackTextView.delegate = self } private func setButtonAction() { @@ -47,3 +48,13 @@ class FeedbackWriteViewController: UIViewController { self.dismiss(animated: true) } } + +extension FeedbackWriteViewController: UITextViewDelegate { + func textViewDidBeginEditing(_ textView: UITextView) { + feedbackWriteView.setTextViewToWrite() + } + + func textViewDidEndEditing(_ textView: UITextView) { + feedbackWriteView.setTextViewToEnd() + } +}