如何在iOS的表格视图表单中将光标从一个文本字段移动到另一个文本字段?

时间:2019-11-29 08:45:49

标签: swift

我有一个要使用表格视图制作的表格。每个单元格都有一个文本字段,当我在键盘上点击“下一步”时,我希望光标移动到下一个文本字段。 这是我当前正在使用的tableview代码:

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.arrayData.count;
    }
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

     let cell = tblView.dequeueReusableCell(withIdentifier: "cellTextField")! as! cellTextField

            cell.tfValue.placeholder = objclsSignup.placeHolder! as String
            cell.tfValue.tag = indexPath.row
            cell.tfValue.delegate = self

             cell.tfValue.returnKeyType = UIReturnKeyType.next
            if indexPath.row == 6 {
                cell.tfValue.returnKeyType = UIReturnKeyType.done
            }
return cell
}


 func textFieldShouldReturn(_ textField: UITextField) -> Bool {
      if textField.returnKeyType == UIReturnKeyType.next{
textField.becomeFirstResponder()
}else {
textField.resignFirstResponder()
}
return true 
}

我正在使用Swift 4,Xcode 10.2。

2 个答案:

答案 0 :(得分:1)

首先,不要像使用here那样在单元格中使用委托来传递带有标签的数据。

当您有一个委托将单元格传递到数据源/委托时,请使用indexPath抓取下一个单元格(如果有),并在CREATE TABLE Foo(id INT primary key, arr int[]); INSERT INTO Foo(id, arr) values (1, array[1,2,3]); INSERT INTO Foo(id, arr) VALUES (1, ARRAY[2,3,4]) ON CONFLICT (id) DO UPDATE SET arr = ( with T AS ( -- Make a table out of existing array value SELECT unnest(arr) FROM Foo WHERE id=EXCLUDED.id ), S AS ( -- Make a table out of new array SELECT unnest(EXCLUDED.arr) ), -- Union both tables and aggregate back to array R AS ( SELECT array_agg(unnest) AS arr FROM ( SELECT * FROM T UNION SELECT * FROM S ) U ) SELECT arr FROM R ); 上使用函数becomeFirstResponder()进行聚焦它。

答案 1 :(得分:1)

尝试将此代码集委托委托给Storyboard中的textField。

ans2 = input("Enter the name of the song: ")