Files
note/Note/FormatLogViewController.swift
T

100 lines
4.0 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//
// FormatLogViewController.swift
// Note
//
// Created by fish on 2026/7/12.
//
import UIKit
class FormatLogViewController: UIViewController {
private var textView: UITextView!
private var formatButton: UIButton!
private var doneButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
title = "格式化日志"
navigationItem.largeTitleDisplayMode = .never
view.backgroundColor = .systemGroupedBackground
setupUI()
}
private func setupUI() {
textView = UITextView()
textView.translatesAutoresizingMaskIntoConstraints = false
textView.font = UIFont.systemFont(ofSize: 16)
textView.backgroundColor = .white
textView.layer.cornerRadius = 12
textView.textContainerInset = UIEdgeInsets(top: 12, left: 12, bottom: 12, right: 12)
textView.delegate = self
view.addSubview(textView)
doneButton = UIBarButtonItem(title: "完成", style: .prominent, target: self, action: #selector(didTapDoneButton))
formatButton = UIButton(type: .system)
formatButton.translatesAutoresizingMaskIntoConstraints = false
formatButton.setTitle("格式化", for: .normal)
formatButton.titleLabel?.font = UIFont.systemFont(ofSize: 18, weight: .semibold)
formatButton.backgroundColor = .systemBlue
formatButton.setTitleColor(.white, for: .normal)
formatButton.layer.cornerRadius = 12
formatButton.addTarget(self, action: #selector(didTapFormatButton), for: .touchUpInside)
view.addSubview(formatButton)
NSLayoutConstraint.activate([
textView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 16),
textView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16),
textView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16),
textView.bottomAnchor.constraint(equalTo: formatButton.topAnchor, constant: -16),
formatButton.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16),
formatButton.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16),
formatButton.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -16),
formatButton.heightAnchor.constraint(equalToConstant: 52)
])
}
@objc private func didTapDoneButton() {
textView.resignFirstResponder()
}
@objc private func didTapFormatButton() {
textView.text = formatLog(textView.text)
}
private func formatLog(_ text: String) -> String {
var content = text
content = content.replacingOccurrences(of: "# ", with: "")
content = content.replacingOccurrences(of: "#", with: "")
content = content.replacingOccurrences(of: ";", with: "。")
content = content.replacingOccurrences(of: "", with: "。")
content = content.replacingOccurrences(of: ".", with: "。")
content = content.replacingOccurrences(of: "", with: "(")
content = content.replacingOccurrences(of: "", with: ")")
content = content.replacingOccurrences(of: "?", with: "")
content = content.replacingOccurrences(of: ",", with: "")
content = content.replacingOccurrences(of: ":", with: "")
content = content.replacingOccurrences(of: "日星期", with: "日 星期")
content = "# " + content
content = content.replacingOccurrences(of: "一、生活方面", with: "## 一、生活方面")
content = content.replacingOccurrences(of: "二、交易方面", with: "## 二、交易方面")
content = content.replacingOccurrences(of: "三、工作方面", with: "## 三、工作方面")
return content
}
}
extension FormatLogViewController: UITextViewDelegate {
func textViewDidBeginEditing(_ textView: UITextView) {
navigationItem.rightBarButtonItem = doneButton
}
func textViewDidEndEditing(_ textView: UITextView) {
navigationItem.rightBarButtonItem = nil
}
}