如何设置委托类型UITextField.Sshould异步返回

本文关键字:UITextField 类型 Sshould 异步 返回 何设置 设置 | 更新日期: 2023-09-27 18:20:07

当用户在触摸键盘上按下GO时,我正试图从iOS设备调用我的Web服务。我希望在它与Web服务对话时显示一个加载指示器。

我正在为委托类型UITextFieldCondition使用lambda表达式。

    LoginField.ShouldReturn = async textField => { 
        await LoginAsync();
        return textField.ResignFirstResponder();
    };

编译器显示以下错误:

无法将异步lambda表达式转换为委托类型`MonoTouch.UIKit.UTextFieldCondition'

如果我同步执行,代码就会工作:

    LoginField.ShouldReturn = textField => { 
        Login();
        return textField.ResignFirstResponder();
    };

有办法做到这一点吗?

如何设置委托类型UITextField.Sshould异步返回

基本上,没有办法做到这一点。UITextFieldCondition的签名意味着您的委托必须同步返回结果。

我认为你需要改变处理这件事的方式。也许类似于:

LoginField.ShouldReturn = textField =>
{ 
    LoginAsync().ContinueWith(t => /* react to t.Result manually here */);
    return false;
};