SwiftUI Apple Watch 数字键盘

目前,SwiftUI 尚未为 watchOS 提供数字键盘。也没有提供在 watchOS 的 TextField() 上切换输入类型的能力。 这是我有点粗糙的解决方法。

Apple Watch 44mm

Demo of Keyboard 44mm Screen Size

Apple Watch 38mm

Demo of Keyboard 38mm Screen Size

安装说明

WatchOS 在使用 Swift Packages 时也存在一个奇怪的问题,您必须手动将 framework 添加到 Watch Extension 中。

File > Swift Packages > add Package Dependecy... 粘贴 https://github.com/ApplebaumIan/SwiftUI-Apple-Watch-Decimal-Pad.git 到搜索栏中。安装完成后,导航到您的 Xcode 项目并选择 General 选项卡。选择您的 watchOS Extension 目标,然后滚动到 Frameworks, Libraries, and Embedded Content,单击 + 按钮并添加 SwiftUI Apple Watch Decimal Pad framework。

现在您应该能够在所需的 Swift 文件顶部添加 import SwiftUI_Apple_Watch_Decimal_Pad

用法

import SwiftUI
import SwiftUI_Apple_Watch_Decimal_Pad
struct ContentView: View {
	@State public var presentingModal: Bool
	var body: some View {
		DigiTextView(placeholder: placeholder, 
			text: text,
			presentingModal: presentingModal
			)
	}
}

如果您想设置 Textfield 中文本的对齐方式

DigiTextView(placeholder: placeholder,
	text: text, 
	presentingModal: presentKeyboard,
+	alignment: .leading
	)

如果您想使用 Decimil Pad 版本的键盘

DigiTextView(placeholder: placeholder,
	text: text, 
	presentingModal: presentKeyboard,
	alignment: .leading,
+ 	style: .decimal
	)