【问题标题】:How to make custom keyboard only for my app in Swift?如何在 Swift 中仅为我的应用程序制作自定义键盘?
【发布时间】:2016-01-31 16:34:47
【问题描述】:

如何在 Swift 中仅为我的应用程序制作自定义键盘?我不希望人们去设置然后添加键盘。我希望他们能够在我的应用程序上需要它时立即使用它。不需要额外的工作。

如何在 Swift 中实现这一点?

许多链接只讨论在设置中添加新键盘。我不想那样。

我对 UI 很陌生,请给我详细的解释。

【问题讨论】:

    标签: ios swift custom-keyboard


    【解决方案1】:

    用于文本输入的 UITextField 和 UITextView 类都有一个 inputView 属性。此属性默认为 nil,但如果您为其提供视图,则在编辑该文本字段时会弹出该视图而不是普通键盘。

    要实现这一点,请创建一个 UIView 的子类来设置您的自定义键盘布局。然后,当您在应用程序中使用文本字段或文本视图时,您必须为每个字段单独设置它,如下所示:

    let myCustomKeyboard = MyCustomKeyboardView()
    myTextField.inputView = myCustomKeyboard
    

    就是这样,现在您的文本字段使用您提供的自定义键盘。

    由于您希望在应用程序中全局使用键盘,并且必须为每个文本字段或文本视图单独设置键盘,因此这种解决方案会导致大量代码重复。由于代码重复被广泛认为是一件坏事,因此在您的情况下,更好的实现是子类化 UITextField 或 UITextView (显然取决于您使用哪个),并在构造函数中设置键盘:

    class MyCustomKeyboardTextField: UITextField {
    
        override init() {
            super.init()
            setupCustomKeyboard()
        }
    
        required init(coder: aCoder) {
            super.init(aCoder)
        }
    
        override func awakeFromNib() {
            setupCustomKeyboard()
        }
    
        func setupCustomKeyboard() {
            // Set the custom keyboard
            self.inputView = MyCustomKeyboardView()
        }
    }
    

    现在自定义键盘视图将在您使用此子类的任何地方使用。

    【讨论】:

    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多