关闭键盘后 Xamarin.iOS 中的奇怪崩溃

Posted

技术标签:

【中文标题】关闭键盘后 Xamarin.iOS 中的奇怪崩溃【英文标题】:Odd crash in Xamarin.iOS after dismissing keyboard 【发布时间】:2014-11-27 21:26:36 【问题描述】:

所以我正在 Xamarin 中构建一个 MVVM 应用程序。我现在正在为某个视图模型开发 ios 视图,该视图包含一些 RadioGroups 用于从列表中选择项目,以及一些 EntryElements 用于从键盘获取文本数据。现在,当您从列表中选择项目,然后输入键盘数据时,它就可以工作了。但是,如果您先输入键盘数据,然后尝试从 RadioGroup 中选择项目,我会在 Main.cs 中的这一行崩溃:

UIApplication.Main(args, null, "AppDelegate");

这是错误描述:

MonoTouch.Foundation.MonoTouchException:抛出 Objective-C 异常。名称:NSInvalidArgumentException 原因:-[__NSCFString setRestorableResponder:]:无法识别的选择器发送到实例 0x16744d90 at at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) 在 MonoTouch.UIKit.UIApplication.Main (System.String[] args, IntPtr principal, IntPtr delegate) [0x00005] 在 /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:62 在 MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0001c] 在 /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:45 在 GreenRideGlobalMeterReading.iOS.Application.Main (System.String[] args) [0x00008] 在 /Users/developers/Desktop/GreenRideGlobalMeterReading/GreenRideGlobalMeterReading.iOS/Main.cs:17

我不知道到底是什么原因造成的——一些奇怪的 MvvmCross 或 MonoTouch 相关的框架错误?其他人之前遇到过这个问题或知道如何解决它吗?

【问题讨论】:

这个问题好运吗? 【参考方案1】:

您似乎忘记调用键盘的“ResignFirstResponder”。如果键盘已打开,并且您尝试单击另一个控件中的元素,则需要先使用以下命令关闭键盘:

textBox.ResignFirstResponder();

您也可以像这样在启动 textBox 时添加委托:

tbDescription = new UITextField ();
tbDescription.Placeholder = "Description...";
tbDescription.ReturnKeyType = UIReturnKeyType.Done;
tbDescription.ShouldReturn += (textField) => 
 
    tbDescription.ResignFirstResponder ();
    return true; 
;

试试看。我希望它有所帮助。祝你好运!

【讨论】:

以上是关于关闭键盘后 Xamarin.iOS 中的奇怪崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms - 从 2017 年到 2019 年更新 Visual Studio 后 iOS 上的奇怪行为

使用 Azure 中的集线器注册推送通知时,Xamarin.iOS 本机崩溃错误 SIGSEGV

xamarin ios 应用程序因 CBCentralManager 崩溃

Xamarin / iOS - 如何从硬件键盘禁用选项卡键码

Xamarin.iOS 目标 iOS 6 SDK

如何用键盘解决这个奇怪的崩溃