azooKey-Desktop 项目教程
1. 项目的目录结构及介绍
azooKey-Desktop 是一个支持 macOS 的日本输入法项目。以下是该项目的目录结构及其简要介绍:
azooKey-Desktop/
├── app/
│ ├── Main.swift
│ ├── Config.swift
│ └── ...
├── resources/
│ ├── images/
│ ├── fonts/
│ └── ...
├── scripts/
│ ├── build.sh
│ ├── install.sh
│ └── ...
├── tests/
│ ├── TestMain.swift
│ └── ...
├── README.md
├── LICENSE
└── ...
app/
: 包含项目的主要代码文件,如Main.swift
和Config.swift
。resources/
: 包含项目所需的各种资源文件,如图片和字体。scripts/
: 包含用于构建和安装项目的脚本文件。tests/
: 包含项目的测试代码。README.md
: 项目的说明文档。LICENSE
: 项目的许可证文件。
2. 项目的启动文件介绍
项目的启动文件位于 app/
目录下,主要文件是 Main.swift
。该文件负责初始化应用程序并启动主界面。以下是 Main.swift
的简要介绍:
import Foundation
import InputMethodKit
@main
struct Main {
static func main() {
// 初始化输入法
let server = IMKServer(name: "azooKeyServer", bundleIdentifier: Bundle.main.bundleIdentifier)
// 启动主界面
let mainWindow = MainWindow()
mainWindow.run()
}
}
Main.swift
使用@main
标记作为应用程序的入口点。- 初始化输入法服务器并启动主界面。
3. 项目的配置文件介绍
项目的配置文件主要位于 app/
目录下,主要文件是 Config.swift
。该文件负责加载和保存应用程序的配置。以下是 Config.swift
的简要介绍:
import Foundation
struct Config {
static var shared = Config()
var inputMode: InputMode = .hiragana
var enableLiveConversion: Bool = true
var customWords: [String] = []
private init() {}
func save() {
// 保存配置到用户默认设置
UserDefaults.standard.set(inputMode.rawValue, forKey: "inputMode")
UserDefaults.standard.set(enableLiveConversion, forKey: "enableLiveConversion")
UserDefaults.standard.set(customWords, forKey: "customWords")
}
mutating func load() {
// 从用户默认设置加载配置
if let mode = UserDefaults.standard.string(forKey: "inputMode") {
inputMode = InputMode(rawValue: mode) ?? .hiragana
}
enableLiveConversion = UserDefaults.standard.bool(forKey: "enableLiveConversion")
customWords = UserDefaults.standard.array(forKey: "customWords") as? [String] ?? []
}
}
enum InputMode: String {
case hiragana
case katakana
case romaji
}
Config.swift
定义了一个Config
结构体,用于管理应用程序的配置。- 配置包括输入模式、实时转换开关和自定义词汇。
- 提供了保存和加载配置的方法。
以上是 azooKey-Desktop 项目的简要教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助!