我有6个uitextfield.And我做了自动对焦。一旦用户在一个文本字段中输入一个值,他们将自动重定向到下一个文本字段。但我不知道如何处理退格。喜欢当用户在最后一个文本字段并按退格键删除值..他们必须移动到5,4,3,2,1各自的textfields.How做到这一点?< / p>
这是我的自动对焦代码:
@IBAction func editing(_ sender: UITextField)
{
if sender == TextFieldOne {
if sender.text?.characters.count == 1 {
TextFieldTwo.becomeFirstResponder()
}
}
else if sender == TextFieldTwo {
if sender.text?.characters.count == 1 {
TextFieldThree.becomeFirstResponder()
}
}
else if sender == TextFieldThree {
if sender.text?.characters.count == 1 {
TextFieldFour.becomeFirstResponder()
}
}
else if sender == TextFieldFour {
if sender.text?.characters.count == 1 {
TextFieldFive.becomeFirstResponder()
}
}
else if sender == TextFieldFive {
if sender.text?.characters.count == 1 {
TextFieldSix.becomeFirstResponder()
}
}
else if sender == TextFieldSix {
if sender.text?.characters.count == 1 {
TextFieldSix.resignFirstResponder()
}
}
}
提前致谢!
答案 0 :(得分:0)
Swift 3.0
请记住使用editing(_:)
事件绑定EditingChanged
操作。
if sender.text!.length == 0 {
// textfield where you want to Focus.
yourTextField.becomeFirstResponder()
}
但我建议您使用以下UITextFieldDelegate
方法。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
}
答案 1 :(得分:0)
这应该有效:
import cv2
import numpy as np
img = cv2.imread("your_image.jpg")
x,y=img.shape[:2]
ma=max(x,y)
blank = np.zeros((ma,ma,3), np.uint8)
if y>=x:
blank[(y-x)/2:(y-x)/2+x,0:y]=img
else:
blank[0:x,(x-y)/2:(x-y)/2+y]=img
cv2.imshow('result', blank)
cv2.imwrite("result.jpg",blank)
cv2.waitKey(0)
答案 2 :(得分:0)
首先,你不应该在退格时使用前面的tf,因为它不是IOS的标准。然而,这是你实现它的方式:
在shouldchangecharacters方法中,您需要确定点击按钮是否退格,然后使用标签分别标识每个文本字段。因此,当您获得退格时,您可以通过减少当前文本字段中的标记值来获取前一个文本字段,并使前一个文本字段成为第一个响应者。
对于所有文本字段都是相同的,因此您不必使用昂贵的if-else条件来实现它。