格式化笔记页面导航栏添加粘贴和重置按钮
This commit is contained in:
@@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user