gpt4 book ai didi

c# - 单点触控 : UIPicker as first responder for a UITextbox

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:08 25 4
gpt4 key购买 nike

我正在尝试将 UIPicker 实现为 UITextField 内容的自定义“编辑”输入。

到目前为止我有这个:

public override void ViewDidLoad ()
{
// ... snip

tb_status.EditingDidBegin += delegate {
//prevent keyboard from popping up
tb_status.ResignFirstResponder();

TogglePDCASelect();
};

tb_status.ShouldReturn = (textField) => {
TogglePDCASelect();
textField.ResignFirstResponder();
return true;
};
// ... snip

private void TogglePDCASelect()
{
pc_PDCAPicker.Hidden = !pc_PDCAPicker.Hidden;
if(pc_PDCAPicker.Hidden)
{
//AccomodateResponder accomodates the UIScrollView `vwDetails` so that there is room for the responder
//and recalculates the scroll content size.
//deaccomodate does the reverse.
scrollViewer.DeAccomodateResponder(vwDetails);
}
else
{
scrollViewer.AccomodateResponder(vwDetails, tb_status.Frame);
}
}

到目前为止一切顺利,但是当我点击调用选择器的文本框,然后点击普通文本字段或切换 vwDetails subview 时,选择器仍保持在 View 中。

这样设置起来好像很痛苦。我做错了吗?有什么方法可以让选择器的行为就像默认的第一响应者(键盘)一样?

最佳答案

因此,如果我理解正确的话,您本质上是想为该特定文本字段使用自定义键盘/输入?

您可以使用您自己的自定义 UIView 覆盖 UITextFieldInputView,当它成为第一个时,它将显示而不是键盘响应者。

编辑

您的选择器的 InputView 将为 null,所以这就是它不起作用的原因。您需要创建一个新的 UIView 并将其分配给 tb_statusInputView。因此,如果您将选择器添加到此 View ,那么它应该会显示您的选择器。

一个简单的代码示例:(我没有时间验证这是 100% 正确的,但应该可以让您上路)

...// snip
UIView pickerView = new UIView(new RectangleF(0,0,320,216));
pickerView.AddSubview(pc_PDCAPicker);
tb_status.InputView = pickerView;

关于c# - 单点触控 : UIPicker as first responder for a UITextbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5950242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com