如何使用Swift在Xcode上创建自定义数字键盘? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Swift在Xcode上创建自定义数字键盘? [关闭]相关的知识,希望对你有一定的参考价值。
我想在Xcode上创建自定义数字键盘。我该怎么办?我还希望有一个只打印一次的小数点按钮。
答案
显然,您可以将键盘类型设置为.decimalPad
,并且将获得带有小数点分隔符的内置数字小键盘:
如果要实现自己的自定义数字键盘,则可以执行类似A Swift example of Custom Views for Data Input (custom in-app keyboard)的操作,创建自己的inputView
。
最后,如果要输入仅带一个小数点分隔符的十进制数,则可以实现UITextFieldDelegate
,并且最多只能接受一个小数位:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
let previousText = (textField.text ?? "")
let decimalSeparator = Locale.current.decimalSeparator ?? "."
guard let range = Range(range, in: previousText) else return false
let text = previousText.replacingCharacters(in: range, with: string)
return text.range(of: #"^\d*[\#(decimalSeparator)]?\d*$"#, options: .regularExpression) != nil
注意,允许输入的十进制数字不带前导数字(例如输入“ .5”)。如果要强制用户输入前导数字,则可以将最后一行更改为:
return text.range(of: #"^(\d1,[\#(decimalSeparator)])?\d*$"#, options: .regularExpression) != nil
主题上还有其他变化(例如,我可能允许输入中包含空格和数千个分隔符,然后在以后进行清理,以方便从剪贴板中粘贴数字,但希望可以说明这个想法。
另一答案
您可以使用此广告连播为ios应用创建自定义数字键盘。我使用了它,实现起来很简单直接。
https://cocoapods.org/pods/NumPad
以上是关于如何使用Swift在Xcode上创建自定义数字键盘? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
创建 UITextView 时,如何在实时视图中显示的 Swift Playgrounds(在 Xcode 上)的 UI 中隐藏键盘?