我有一个要使用表格视图制作的表格。每个单元格都有一个文本字段,当我在键盘上点击“下一步”时,我希望光标移动到下一个文本字段。 这是我当前正在使用的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。
答案 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: ")