End-Of-Session: Created keyboard grid array

This commit is contained in:
Elizabeth Cray 2025-01-15 00:45:28 -05:00
parent f081cfa6f2
commit eeb19cb929
4 changed files with 43 additions and 19 deletions

View File

@ -12,7 +12,7 @@
<key>awkbd.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>0</integer>
</dict>
</dict>
</dict>

View File

@ -8,14 +8,6 @@
import Foundation
//struct Database {
// var groups: [String]
// var phrases: [Phrase]
// var phrasesByGroup(group: String): [Phrase] = {
//
// }
//}
class Database {
// TODO: if empty, save+return default phrases
var phrases: [Phrase] {

View File

@ -7,26 +7,54 @@
//
// TODO:
// - if touch up outside view, close Kbd
import SwiftUI
struct KeyboardView: View {
@State var db = Database()
@State var cfg = Config()
@State var size: CGSize = .zero
var body: some View {
ScrollView {
VStack {
ForEach(db.groups) { group in
Text(group.name)
.foregroundColor(cfg.highlightColor)
HStack {
ForEach(group.phrases) { phrase in
Text(phrase.string)
VStack {
HStack {
ForEach(1...4, id: \.self) { z in
VStack {
ForEach(1...2, id: \.self) { y in
quarterButton(label: "\(z) \(y)")
}
}
}
Button("Clear") { db.groups[1].name = NSUUID().uuidString}
}
HStack {
ForEach(1...3, id: \.self) { z in
VStack {
ForEach(1...2, id: \.self) { y in
quarterButton(label: "\(z) \(y)")
}
}
}
VStack {
quarterButton(label: "RET")
}
}
}
GeometryReader { proxy in
HStack {} // just an empty container to triggers the onAppear
.onAppear {
size = proxy.size
}
}
}
func quarterButton(label: any StringProtocol) -> some View {
Button (label) {
}
.border(cfg.highlightColor)
.frame(
width: round(size.width/4),
height: round(size.height/4)
)
}
}

View File

@ -20,9 +20,9 @@ class KeyboardViewController: UIInputViewController {
override func viewDidLoad() {
super.viewDidLoad()
let hostController = UIHostingController(rootView: KeyboardView())
hostController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
hostController.sizingOptions = [.intrinsicContentSize]
self.view.addSubview(hostController.view)
addChild(hostController)
@ -64,5 +64,9 @@ class KeyboardViewController: UIInputViewController {
}
self.nextKeyboardButton.setTitleColor(textColor, for: [])
}
func sendText(text: String) {
textDocumentProxy.insertText(text)
}
}