当我触摸键盘外部时 IOS 程序崩溃

Posted

技术标签:

【中文标题】当我触摸键盘外部时 IOS 程序崩溃【英文标题】:IOS program crashes when I touch outside of keypad 【发布时间】:2013-12-21 08:36:00 【问题描述】:

当我触摸名为tv_Name 的文本字段时,它会调出小键盘,但当我触摸小键盘外时,程序会崩溃。

ViewController.h,我这样声明:

@property (weak, nonatomic) IBOutlet UITextField *tv_Name;

这是ViewController.m中隐藏键盘的代码:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    [self.tv_Name resignFirstResponder];

上面的代码抛出异常:

**2013-12-21 13:09:36.027 HerdProfile[818:70b] -[HerdProfileViewController tv_Name:]:无法识别的选择器发送到实例 0x10901ce90 (lldb)**

【问题讨论】:

你能把你的代码详细贴一下吗? self.tv_Name.delegate = self; @nico,我是 ios 和目标 c 的新手,我应该把那段代码放在哪里? 你可以把它放在 viewdidload 方法中。所以去那里试试吧。 @nico,我解决了这个问题。这与将 .xib 标签连接到 .m 文件有关,然后我只删除了 .m 文件中的方法,而没有清除 .xib 文件中的引用。这是导致崩溃的原因。不过感谢您的帮助 【参考方案1】:

以下对我来说似乎没问题。

ViewController.m

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *tvNameTextField;
@end

@implementation ViewController

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    [self.tvNameTextField resignFirstResponder];

@end

您确定您的 UITextField 已正确连接到您的控制器吗?如果连接正确,您的@property 旁边应该有一个小圆点(请参阅屏幕截图)

【讨论】:

以上是关于当我触摸键盘外部时 IOS 程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

iOS 9 键盘:此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃

当用户触摸注释时,无法识别的选择器崩溃

Sencha touch/cordova 应用程序在 ios8 启动时随机崩溃

在android中触摸EditText时应用程序崩溃

适用于 iOS 的 Google Plus API:共享功能 - 在本机对话框共享中触摸“公共”时应用程序崩溃?

Android Studio 应用程序在触摸 MapView 时崩溃