格式化笔记页面导航栏添加粘贴和重置按钮
This commit is contained in:
@@ -12,6 +12,15 @@ class FormatNoteViewController: UIViewController {
|
||||
private var textView: UITextView!
|
||||
private var iCloudButton: UIButton!
|
||||
private var noteButton: UIButton!
|
||||
private var doneButton: UIBarButtonItem!
|
||||
private var pasteButton: UIBarButtonItem!
|
||||
private var resetButton: UIBarButtonItem!
|
||||
private var rightBarButtonMode: RightBarButtonMode = .paste
|
||||
|
||||
private enum RightBarButtonMode {
|
||||
case paste
|
||||
case reset
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
@@ -30,8 +39,14 @@ class FormatNoteViewController: UIViewController {
|
||||
textView.font = UIFont.preferredFont(forTextStyle: .body)
|
||||
textView.textContainerInset = UIEdgeInsets(top: 12, left: 12, bottom: 12, right: 12)
|
||||
textView.isEditable = true
|
||||
textView.delegate = self
|
||||
view.addSubview(textView)
|
||||
|
||||
doneButton = UIBarButtonItem(title: "完成", style: .plain, target: self, action: #selector(didTapDoneButton))
|
||||
pasteButton = UIBarButtonItem(title: "粘贴文案", style: .plain, target: self, action: #selector(didTapPasteButton))
|
||||
resetButton = UIBarButtonItem(title: "重置", style: .plain, target: self, action: #selector(didTapResetButton))
|
||||
updateRightBarButtonItem()
|
||||
|
||||
iCloudButton = createBottomButton(title: "iCloud 格式化", color: .systemBlue)
|
||||
iCloudButton.addTarget(self, action: #selector(didTapiCloudButton), for: .touchUpInside)
|
||||
view.addSubview(iCloudButton)
|
||||
@@ -76,9 +91,53 @@ class FormatNoteViewController: UIViewController {
|
||||
return button
|
||||
}
|
||||
|
||||
@objc private func didTapDoneButton() {
|
||||
textView.resignFirstResponder()
|
||||
}
|
||||
|
||||
@objc private func didTapPasteButton() {
|
||||
if let string = UIPasteboard.general.string {
|
||||
textView.text = string
|
||||
}
|
||||
}
|
||||
|
||||
@objc private func didTapResetButton() {
|
||||
textView.text = ""
|
||||
rightBarButtonMode = .paste
|
||||
updateRightBarButtonItem()
|
||||
}
|
||||
|
||||
private func updateRightBarButtonItem() {
|
||||
if textView.isFirstResponder {
|
||||
navigationItem.rightBarButtonItem = doneButton
|
||||
} else {
|
||||
switch rightBarButtonMode {
|
||||
case .paste:
|
||||
navigationItem.rightBarButtonItem = pasteButton
|
||||
case .reset:
|
||||
navigationItem.rightBarButtonItem = resetButton
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@objc private func didTapiCloudButton() {
|
||||
rightBarButtonMode = .reset
|
||||
updateRightBarButtonItem()
|
||||
}
|
||||
|
||||
@objc private func didTapNoteButton() {
|
||||
rightBarButtonMode = .reset
|
||||
updateRightBarButtonItem()
|
||||
}
|
||||
}
|
||||
|
||||
extension FormatNoteViewController: UITextViewDelegate {
|
||||
|
||||
func textViewDidBeginEditing(_ textView: UITextView) {
|
||||
updateRightBarButtonItem()
|
||||
}
|
||||
|
||||
func textViewDidEndEditing(_ textView: UITextView) {
|
||||
updateRightBarButtonItem()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user