关闭键盘后 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 崩溃