格式化笔记页面导航栏添加粘贴和重置按钮

This commit is contained in:
2026-07-12 21:29:15 +08:00
parent 53106c8760
commit 9ee49cea49
+59
View File
@@ -12,6 +12,15 @@ class FormatNoteViewController: UIViewController {
private var textView: UITextView! private var textView: UITextView!
private var iCloudButton: UIButton! private var iCloudButton: UIButton!
private var noteButton: 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() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
@@ -30,8 +39,14 @@ class FormatNoteViewController: UIViewController {
textView.font = UIFont.preferredFont(forTextStyle: .body) textView.font = UIFont.preferredFont(forTextStyle: .body)
textView.textContainerInset = UIEdgeInsets(top: 12, left: 12, bottom: 12, right: 12) textView.textContainerInset = UIEdgeInsets(top: 12, left: 12, bottom: 12, right: 12)
textView.isEditable = true textView.isEditable = true
textView.delegate = self
view.addSubview(textView) 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 = createBottomButton(title: "iCloud 格式化", color: .systemBlue)
iCloudButton.addTarget(self, action: #selector(didTapiCloudButton), for: .touchUpInside) iCloudButton.addTarget(self, action: #selector(didTapiCloudButton), for: .touchUpInside)
view.addSubview(iCloudButton) view.addSubview(iCloudButton)
@@ -76,9 +91,53 @@ class FormatNoteViewController: UIViewController {
return button 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() { @objc private func didTapiCloudButton() {
rightBarButtonMode = .reset
updateRightBarButtonItem()
} }
@objc private func didTapNoteButton() { @objc private func didTapNoteButton() {
rightBarButtonMode = .reset
updateRightBarButtonItem()
}
}
extension FormatNoteViewController: UITextViewDelegate {
func textViewDidBeginEditing(_ textView: UITextView) {
updateRightBarButtonItem()
}
func textViewDidEndEditing(_ textView: UITextView) {
updateRightBarButtonItem()
} }
} }