如何仅在Swift中为我的应用制作自定义键盘?我不希望人们去设置然后添加键盘。我希望他们能够在我的应用程序上立即使用它。无需额外的工作。
如何在Swift中实现呢?
许多链接只谈论在设置中添加新键盘。我不要
我对UI还是很陌生,请给我详细说明。
用于文本输入的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() } }
现在,无论您在哪里使用此子类,都将使用自定义键盘视图。