Xamarin.ios Monotouch.Dialog,正在尝试获取EntryElement.ShouldReturn+;=()=>;{...}; 工作

Xamarin.ios Monotouch.Dialog,正在尝试获取EntryElement.ShouldReturn+;=()=>;{...}; 工作,xamarin.ios,monotouch.dialog,Xamarin.ios,Monotouch.dialog,我想在输入EntryElement时出现的UIKeyboard上的“go”按钮中添加一个事件处理程序。这是我的密码 EntryElement cPassword; // cPassword = new EntryElement (" ", "Password", "", true) { ReturnKeyType = UIReturnKeyType.Go }; // cPassword.ShouldReturn += () => { Login (); }; Login方法返回v

我想在输入EntryElement时出现的UIKeyboard上的“go”按钮中添加一个事件处理程序。这是我的密码

EntryElement cPassword;
//
cPassword = new EntryElement (" ", "Password", "", true) {
    ReturnKeyType = UIReturnKeyType.Go
};
//
cPassword.ShouldReturn += () => { Login (); };
Login方法返回void并使用用户提供的条目详细信息执行基本日志操作

private void Login ()
{
    // Do login stuff
    //
}
但我认为它需要一个返回类型为func的方法,因为这是我在尝试使用当前代码时收到的错误消息:

Not all code paths return a value in anonymous method of type 'System.Func<bool>' 
(CS1643)
并非所有代码路径都在“System.Func”类型的匿名方法中返回值
(CS1643)

这是我第一次遇到这种类型的东西,以前从未见过func:,希望有人能给我指出正确使用它的方向。谢谢

您的匿名方法应返回bool:

cPassword.ShouldReturn = () => {

    Login();
    return true;

};

还请注意,由于ShouldReturn是委托类型的属性,因此最佳做法是分配值,而不是像处理事件(“+=”)那样向其添加值。

谢谢,一如既往,这是一个简单的修复方法。虽然它不喜欢按照您的建议分配,但我想这是一个受保护的功能,我需要创建自己的EntryElement类。很高兴我提供了帮助。很抱歉,我没有在代码中签入作业。如果它实际上是一个事件而不是一个属性,请让我知道,以便我可以更正我的答案。您得到的错误是“MonoTouch.Dialog.EntryElement.ShouldReturn”,当在类型“MonoTouch.Dialog.EntryElement”(CS0070)之外使用时,它只能出现在+=或-=的左侧。我最初尝试的基础是基于米格尔的回答,是缺少的“返回[bool]”给我带来了麻烦>_