- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
默认情况下,在 iPhone 上使用 .numberPad
键盘时,数字键在每个键的底部也有字母。
这些字母纯粹是装饰性的,以帮助人们输入数字;但就我而言(输入商品数量),它们完全是多余的,甚至可能令人困惑。
是否可以配置键盘来隐藏这些字母?我是否应该实现自己的键盘 View 以正确显示按键?
最佳答案
我认为目前没有没有文本字符的“仅数字”键盘。
但您可以创建自己的:
textField.inputView = NumericKeyboard(target: textField)
在哪里
class DigitButton: UIButton {
var digit: Int = 0
}
class NumericKeyboard: UIView {
weak var target: UIKeyInput?
var numericButtons: [DigitButton] = (0...9).map {
let button = DigitButton(type: .system)
button.digit = $0
button.setTitle("\($0)", for: .normal)
button.titleLabel?.font = UIFont.preferredFont(forTextStyle: .largeTitle)
button.setTitleColor(.black, for: .normal)
button.layer.borderWidth = 0.5
button.layer.borderColor = UIColor.darkGray.cgColor
button.accessibilityTraits = [.keyboardKey]
button.addTarget(self, action: #selector(didTapDigitButton(_:)), for: .touchUpInside)
return button
}
var deleteButton: UIButton = {
let button = UIButton(type: .system)
button.setTitle("⌫", for: .normal)
button.titleLabel?.font = UIFont.preferredFont(forTextStyle: .largeTitle)
button.setTitleColor(.black, for: .normal)
button.layer.borderWidth = 0.5
button.layer.borderColor = UIColor.darkGray.cgColor
button.accessibilityTraits = [.keyboardKey]
button.accessibilityLabel = "Delete"
button.addTarget(self, action: #selector(didTapDeleteButton(_:)), for: .touchUpInside)
return button
}()
init(target: UIKeyInput) {
self.target = target
super.init(frame: .zero)
configure()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
// MARK: - Actions
extension NumericKeyboard {
@objc func didTapDigitButton(_ sender: DigitButton) {
target?.insertText("\(sender.digit)")
}
@objc func didTapDeleteButton(_ sender: DigitButton) {
target?.deleteBackward()
}
}
// MARK: - Private initial configuration methods
private extension NumericKeyboard {
func configure() {
autoresizingMask = [.flexibleWidth, .flexibleHeight]
addButtons()
}
func addButtons() {
let stackView = createStackView(axis: .vertical)
stackView.frame = bounds
stackView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
addSubview(stackView)
for row in 0 ..< 3 {
let subStackView = createStackView(axis: .horizontal)
stackView.addArrangedSubview(subStackView)
for column in 0 ..< 3 {
subStackView.addArrangedSubview(numericButtons[row * 3 + column + 1])
}
}
let subStackView = createStackView(axis: .horizontal)
stackView.addArrangedSubview(subStackView)
let blank = UIView()
blank.layer.borderWidth = 0.5
blank.layer.borderColor = UIColor.darkGray.cgColor
subStackView.addArrangedSubview(blank)
subStackView.addArrangedSubview(numericButtons[0])
subStackView.addArrangedSubview(deleteButton)
}
func createStackView(axis: NSLayoutConstraint.Axis) -> UIStackView {
let stackView = UIStackView()
stackView.axis = axis
stackView.alignment = .fill
stackView.distribution = .fillEqually
return stackView
}
}
产生:
显然,您可以疯狂地自定义您的键盘,使其看起来像您想要的那样。以上是相当原始的,我只是把它们拼凑在一起。但它说明了这个想法:创建您自己的输入 View 并使用 UIKeyInput
协议(protocol)将键盘输入传递给控件。
关于ios - 如何隐藏 .numberPad 键盘上的字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57243919/
我有一些简单的 UITextFields 可以调出数字键盘。 我想限制用户对输入的控制。 例如,一个特定的文本字段不应允许超过 32 的任何值。 我应该将哪个参数与 32 ) ret
默认情况下,在 iPhone 上使用 .numberPad 键盘时,数字键在每个键的底部也有字母。 这些字母纯粹是装饰性的,以帮助人们输入数字;但就我而言(输入商品数量),它们完全是多余的,甚至可能令
模拟器曾经在数字锁定打开的情况下接受来 self 的数字键盘的数字输入,但是现在,它的行为就像数字锁定关闭一样。例如,如果我在数字键盘上键入“7”,它的响应就像按下了“Home”一样。 顶部的数字键仍
我在我的 android 应用程序中实现了一个 WebView 来显示一个网络表单。其中一个字段要求用户手动输入他的电话号码(以防电话不允许提取电话号码)。 现在,当用户选择字段时,qwerty 软键
我在数字键盘上有一个完成按钮,当我输入一个值并按下完成时,该值没有保存/注册。我的代码如下: 我正在使用 UIRepresentable 协议(protocol)(由 Rajeev Kumar S 提
UIKeyboardType.NumberPad 看起来像这样: 我希望它看起来像这样: 有没有办法在键盘启动时在那个角落覆盖一个 View 来添加这个单一的键?这在 Swift 4 中可行吗? 我这
我在 Storyboard 上为我的 TextField 设置了 Number Pad,因为我的应用只需要数字。但它仅适用于 iPhone。我找不到适用于 iPad 的解决方案。我试过了 overri
UIKeyboardTypeNumberPad 在 iPad 上不显示数字键盘。相反,它显示 UIKeyboardTypeNumbersAndPunctuation 键盘。 我是否遗漏了某些内容,或者
对 iOS 开发相当陌生,所以请原谅我问一些可能非常明显的问题。众所周知,UITextField 的键盘(keyboardType 设置为 .NumberPad)如下所示... .NumberPad
我搜索如何使用 Swift 5 在文本字段的数字键盘中用点替换逗号分隔符。 我尝试过,但没有成功。 let commaValue = textField.text! let decimalValue
我正在使用 TextField 从特定形式的用户号码中获取 xxx-xxx-xx-xx。 我需要向用户显示 NumberPad 键盘并在编辑期间在第 3、6 和第 8 位数字后添加分隔符“-”。 问题
对 iOS 开发还很陌生,所以请原谅我问了一些可能很明显的问题。众所周知,将 keyboardType 设置为 .NumberPad 的 UITextField 键盘看起来如下所示... .Numbe
我在代码中创建了一个 UITextField,现在我知道如何定义应该出现的键盘了吗?我刚拿到标准键盘,但我需要数字键盘?! 谢谢 最佳答案 您需要将keyboardType 属性设置为UIKeyboa
这个问题在这里已经有了答案: How to show "Done" button on iOS number pad keyboard? (21 个回答) 已关闭 9 年前。
使用 UIButtons 创建一个简单的按钮矩阵非常简单。我坚持的是它的行为。多个 UIButton 的行为不同。当触摸离开时,UIKeyboard 上的按键会失去其突出显示状态,自定义按键会在相当长
我正在尝试了解如何在键盘更改时收到通知。我想做的是在类型 4 和 5(NumberPad 和 PhonePad)的键盘上添加一个 DONE 按钮,一切正常,除了当我使用默认 KB 类型从 TextFi
我目前正在将我的应用程序更新到 iOS 11。突然我的键盘出现此故障/错误: Can't find keyplane that supports type 4 for keyboard iPhone-
我最近升级到 Xcode 7,今天当我点击一个文本字段并弹出键盘时,我在日志中注意到这个警告: Can't find keyplane that supports type 4 for keyboar
我有一个带有自定义设计的 xamarin.ios 应用程序,我想根据我的设计调整键盘。所以我正在尝试为 UIKeyboardType.NumberPad 连接一个自定义设计,类似于下图。我该怎么做?谢
我已经下载了适用于 iPhone 的 iOS 8 Gold Master 和 SDK。 我测试了该应用程序,除了一件事之外,它运行良好。 我有一个文本字段,如果用户想要输入内容,其中会出现数字键盘,此
我是一名优秀的程序员,十分优秀!