RSNumberPad 1.3.2

RSNumberPad 1.3.2

devxsby 维护。



  • 作者:
  • devxsby

RSNumberPad

RSNumberPad 是一个提供随机数字键盘的库,用于 iOS 应用程序。

通过为用户提供随机变化的数字键盘,该库提高了密码输入时的安全性。该库还支持暗色模式和横屏模式,并且当键盘覆盖文本字段时自动提升视图,使用户能够看到文本字段的视觉表示。


CI Status Version License Platform

示例

浅色模式 暗色模式
横屏模式(浅色) 横屏模式(暗色)

安装

  • 使用 CocoaPods:

    pod 'RSNumberPad'
  • 使用 Swift Package Manager:

    import PackageDescription
    
    let package = Package(
      name: "AppName",
      dependencies: [
        .Package(url: "https://github.com/devxsby/RSNumberPad", .upToNextMajor(from: "1.3.0")),
      ]
    )

需求

  • iOS 13.0+

使用

1. 键盘设置

创建 RSNumberPad 的实例并将其放置在所需位置。添加到视图时,键盘将自动配置。

  • 编程方式

    import RSNumberPad
    
    let numberPadTextfield = RSNumberPad()
    
  • 故事板

2. 密码存储

使用 savePassword(key: String, password: String) 方法对用户输入的密码进行哈希存储。此方法使用键将密码安全地存储在密钥链中。

3. 密码验证

使用 checkPassword(key: String, password: String) 方法验证用户输入的密码。此方法使用键从密钥链中检索密码并与用户输入的密码进行比较。


关键特性

1. 随机数字键盘

每次用户调用键盘时,数字的位置都会随机改变。这使得预测用户的密码输入模式变得困难。

2. 密码哈希和存储

用户输入的密码使用SALT算法结合UUID进行哈希,并在iOS密钥链中安全存储此哈希值。

3. 密码验证

将用户输入的密码进行哈希,并将其与密钥链中存储的值进行比较。这验证了密码的准确性。

4. 支持暗黑模式

RSNumberPad完全支持iOS的深色模式。当启用深色模式时,键盘的主题将自动切换为深色。

5. 旋转模式(横屏模式)支持

RSNumberPad完全支持横屏模式。当设备旋转到横屏方向时,键盘视图将自动调整到横屏模式。

6. 防止键盘遮挡

如果键盘覆盖了文本域,视图将自动升起以允许用户看到文本域。

7. 通过防止粘贴增强安全性

为了提高安全性,RSNumberPad禁用了文本域内的复制和粘贴功能。这使得用户无法将已经复制的内容粘贴到文本域中,进一步保障数据输入的安全。

8. 通过关闭键盘改进可用性

除了“完成”按钮之外,RSNumberPad还通过允许用户在文本域外部点击来关闭键盘,以提高可用性。此功能为用户提供了一种更直观的方式来控制键盘的可视性。

除此之外,这个库应用了MVVM架构来分离视图和模型,允许根据需要自由定制按键视图。因此,计划更新以控制每个按钮(数字、删除、随机)的状态或更改键盘的形状、大小等。


作者

devxsby,[email protected]


许可证

RSNumberPad采用MIT许可证。更多信息请参阅LICENSE文件。