如何使用Swift在Xcode上创建自定义数字键盘? [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Swift在Xcode上创建自定义数字键盘? [关闭]相关的知识,希望对你有一定的参考价值。

我想在Xcode上创建自定义数字键盘。我该怎么办?我还希望有一个只打印一次的小数点按钮。

答案

显然,您可以将键盘类型设置为.decimalPad,并且将获得带有小数点分隔符的内置数字小键盘:

enter image description here

如果要实现自己的自定义数字键盘,则可以执行类似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上创建自定义数字键盘? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

键盘 Swift 上的自定义键

Xcode:仅为我自己的应用程序创建自定义键盘

Swift 和 Xcode - 如何创建自定义标签栏图标

如何在 Xcode 5 中自定义默认键盘

创建 UITextView 时,如何在实时视图中显示的 Swift Playgrounds(在 Xcode 上)的 UI 中隐藏键盘?

设备上的 iOS 8 自定义键盘