Skip to content

Commit

Permalink
[Feat] #6 - TextView delegate 설정
Browse files Browse the repository at this point in the history
  • Loading branch information
yurim830 committed Oct 25, 2024
1 parent 7218788 commit 6a2b25c
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 4 deletions.
35 changes: 31 additions & 4 deletions 35-seminar/Presentation/Week2/View/FeedbackWriteView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class FeedbackWriteView: UIView {

// MARK: - Properties
var starCount: Int = 0
let textViewPlaceHolder = "리뷰(선택사항)"

private let titleLabel = UILabel()
let cancelButton = UIButton()
Expand All @@ -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
Expand Down Expand Up @@ -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() {
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class FeedbackWriteViewController: UIViewController {
super.viewDidLoad()
setButtonAction()
setStarStackViewGesture()
feedbackWriteView.feedbackTextView.delegate = self
}

private func setButtonAction() {
Expand All @@ -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()
}
}

0 comments on commit 6a2b25c

Please sign in to comment.