使用由按钮组成的自定义键盘将文本附加到 UITextField
Append text to a UITextField with custom keyboard made out of buttons
我有一个由一堆按钮组成的静态数字键盘,我还有三个 UITextFields
、textField1、textField2 和 textField3,我在其中使用静态键盘输入文本。
这是我用来检测哪个文本字段当前处于焦点并输入按钮内容的代码。它有点工作,但我不喜欢我有三个 IF 语句的事实,而且我不确定如何防止键盘在点击文本字段时出现。
实现此功能的最佳方式是什么?
@IBAction func appendKey(sender: AnyObject) {
let digit = sender.currentTitle!
if(textField1.isFirstResponder()){
textField1.text = textField1.text! + digit!
}else if(textField2.isFirstResponder()){
textField2.text = textField2.text! + digit!
}else if(textField3.isFirstResponder()){
textField3.text = textField3.text! + digit!
}
}
谢谢
如果显示的是标准键盘,则说明您的自定义键盘设置不正确。您的自定义键盘应该是每个 UITextField
的 inputView
。如果这样做,标准键盘将不会出现,而会出现。
您的自定义键盘应该是一个单独的 class 来处理它自己的所有按钮。看起来您在一个视图控制器中拥有所有内容 - 所有文本字段、所有按钮和所有按钮处理代码。这是一个糟糕的方法。创建自定义键盘 class 视图。将所有代码用于处理和显示该自定义视图中的按钮 class。在您的视图控制器中创建此视图的单个实例,并将自定义键盘视图实例分配给每个文本字段的 inputView
属性。
在自定义键盘 class 中,收听 UITextFieldTextDidBeginEditingNotification
通知。这就是您跟踪当前文本字段的方式。您的自定义键盘 class 除了跟踪当前文本字段外,不应对任何文本字段有任何特定引用。它还应确保文本字段的 inputView
是它本身。
在自定义键盘 class 的每个按钮处理程序中,获取您要附加的文本,然后使用该字符串调用文本字段的 insertText:
方法。而已。这将确保根据文本字段中的当前选择插入文本 and/or 替换。
我有一个由一堆按钮组成的静态数字键盘,我还有三个 UITextFields
、textField1、textField2 和 textField3,我在其中使用静态键盘输入文本。
这是我用来检测哪个文本字段当前处于焦点并输入按钮内容的代码。它有点工作,但我不喜欢我有三个 IF 语句的事实,而且我不确定如何防止键盘在点击文本字段时出现。
实现此功能的最佳方式是什么?
@IBAction func appendKey(sender: AnyObject) {
let digit = sender.currentTitle!
if(textField1.isFirstResponder()){
textField1.text = textField1.text! + digit!
}else if(textField2.isFirstResponder()){
textField2.text = textField2.text! + digit!
}else if(textField3.isFirstResponder()){
textField3.text = textField3.text! + digit!
}
}
谢谢
如果显示的是标准键盘,则说明您的自定义键盘设置不正确。您的自定义键盘应该是每个 UITextField
的 inputView
。如果这样做,标准键盘将不会出现,而会出现。
您的自定义键盘应该是一个单独的 class 来处理它自己的所有按钮。看起来您在一个视图控制器中拥有所有内容 - 所有文本字段、所有按钮和所有按钮处理代码。这是一个糟糕的方法。创建自定义键盘 class 视图。将所有代码用于处理和显示该自定义视图中的按钮 class。在您的视图控制器中创建此视图的单个实例,并将自定义键盘视图实例分配给每个文本字段的 inputView
属性。
在自定义键盘 class 中,收听 UITextFieldTextDidBeginEditingNotification
通知。这就是您跟踪当前文本字段的方式。您的自定义键盘 class 除了跟踪当前文本字段外,不应对任何文本字段有任何特定引用。它还应确保文本字段的 inputView
是它本身。
在自定义键盘 class 的每个按钮处理程序中,获取您要附加的文本,然后使用该字符串调用文本字段的 insertText:
方法。而已。这将确保根据文本字段中的当前选择插入文本 and/or 替换。