메모장 프로젝트 문제해결

zoe·2022년 2월 10일
0
post-custom-banner

TextView 스크롤시 키보드 높이만큼 올리기

contentInset의 bottom을 키보드 높이만큼 올리면 됨

키보드 없어질 때는 bottom을 0으로 설정

NotificationCenter.default.addObserver(
      self,
      selector: #selector(keyboardWillShow),
      name: UIResponder.keyboardWillShowNotification,
      object: nil
    )
    NotificationCenter.default.addObserver(
      self,
      selector: #selector(keyboardWillHide),
      name: UIResponder.keyboardWillHideNotification,
      object: nil
    )

  
  @objc private func keyboardWillShow(_ notification: Notification) {
    guard
      let userInfo = notification.userInfo,
      let keyboardFrame = userInfo[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect else {
        return
      }
    textView.contentInset.bottom = keyboardFrame.height
    textView.verticalScrollIndicatorInsets.bottom = keyboardFrame.height
  }
  
  @objc private func keyboardWillHide(_ notification: Notification) {
    textView.contentInset.bottom = 0
    textView.verticalScrollIndicatorInsets.bottom = 0
  }

드래그 시 키보드 없애기

private let textView: UITextView = {
    let textView = UITextView()
    textView.font = UIFont.preferredFont(forTextStyle: .body)
    textView.keyboardDismissMode = .interactive
    return textView
  }()

키보드 내리기

view.endEditing(true)
profile
개발하면서 마주친 문제들을 정리하는 공간입니다.
post-custom-banner

0개의 댓글