我有一个带有多个文本框的容器视图。我在父视图控制器(自定义键盘)中也有一个按钮。我想做的是先选择文本框,然后在我点击按钮时希望将一些值填充到最后一个选定的/重点突出的文本框中。 我怎样才能做到这一点?也欢迎任何其他方式。 (我在原始代码中有多个容器视图,并尝试对所有视图使用一个键盘)
$('.btn-filtrar').on('click', function(){
let id = $(this).closest('tr').data('id');
let filter_type = $(this).closest('tr').data('type');
let sort_order = document.getElementById(filter_type +'_sort-order_' + id).value;
//console.log(id, filter_type, sort_order);
$.ajax({
url: "index.php?route=module/eot_filter/saveFilter&token=<?php echo $token; ?>",
type: "POST",
data: {
id:id,
filter_type:filter_type,
sort_order:sort_order
},
success: function (result) {
$("#"+ filter_type +"").load(" #"+ filter_type +"");
}
});
});
容器视图控制器
class MainViewController: UIViewController {
var weightVC : WeightViewController!
var focusedElement : UITextField
override func viewDidLoad() {
super.viewDidLoad()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "weight") {
weightVC = segue.destination as? WeightViewController
}
}
@IBAction func button1Clicked(_ sender: Any) {
if weightVC != nil {
weightVC.sampleTextBox1.text = "1"
//I want this sampleTextBox1 to be dynamic like weightVC.focusedInput = "1"
}
}
}
extension MainViewController:ChildToParentProtocol {
func setFocusedElement(with value: UITextField){
focusedElement = value
}
}
换句话说,我只是想在点击按钮时保留对上一个焦点突出的UITextFild的引用。希望我的要求足够明确。如果有办法实现,请指导我。
谢谢
答案 0 :(得分:1)
如果我正确理解了您的问题,则可以使用其标记来跟踪点击了String _data = await getData(0, 'id');
Text('This is the output $_data');
的内容。然后,您可以使用UITextField
来获取所选的UITextFieldDelegate
标签。
考虑以下UITextField
的代码
WeightViewController
现在,在父视图protocol ChildToParentProtocol: class {
//Changed value to Int for passing the tag.
func setFocusedElement(with value: Int)
}
import UIKit
class WeightViewController: UIViewController {
@IBOutlet weak var tf1: UITextField!
@IBOutlet weak var tf2: UITextField!
var selectedTFTag = 0
weak var delegate: ChildToParentProtocol? = nil
override func viewDidLoad() {
super.viewDidLoad()
//Assign delegate and tags to your TF
tf1.delegate = self
tf2.delegate = self
tf1.tag = 1
tf2.tag = 2
}
}
extension WeightViewController: UITextFieldDelegate {
func textFieldDidBeginEditing(_ textField: UITextField) {
//Get the selected TF tag
selectedTFTag = textField.tag
//Pass tag to parent view
delegate?.setFocusedElement(with: selectedTFTag)
}
}
中,您需要进行一些修改。我在进行更改以满足您的要求的地方添加了评论。
ViewController
您可以检查THIS演示项目以了解更多信息。