检测失去了UITextView的焦点,UITextView仍然是第一个响应者

时间:2014-12-15 14:26:40

标签: ios objective-c events hid

我试图将外部扫描仪与HID接口集成,因此我使用UITextView捕获扫描仪数据(HID设备就像键盘一样),屏幕上有几个嵌套视图,我显示一个表在子视图中查看主要细节。

我使用UISwitch(带标签"使用外部扫描仪")强制关注我的UITextView,如果我启用了开关,则扫描仪被正确读取并且工作正常。

层次结构它类似于:

  • 扫描程序视图(包含带有UISwitch和其他一些字段的UITextView)
    • 带有列表的表格视图(扫描仪视图的子视图)
    • 详细视图

我的应用程序使用故事板,我的问题是在强制关注UITextView后,如果我触摸表格视图并出现详细视图,焦点似乎丢失,扫描仪不再被读取。我已经检查了UITimer,它每2秒运行一次UITextView仍然是第一个响应者(我使用这个答案找到第一个响应者:https://stackoverflow.com/a/14135456/661140),但由于某种原因没有响应。

我尝试使用- (void)textViewDidEndEditing:(UITextView *)textView检测焦点何时丢失,但它无法正常工作

- (void)textViewDidEndEditing:(UITextView *)textView
{
    if (textView == _hiddenTextExternalScannerTextView)
    {
        NSLog(@"Text view has lost the focus in textFieldDidEndEditing");
    }
}

有谁可以告诉我为什么UITextView没有响应键盘事件?有没有办法检测该字段何时不再响应?

我在没有HID设备的情况下进行了相同的测试,只进行了内部键盘测试,当我从字段中浏览时,键盘被解除,但仍然像第一响应者一样检测到该字段。

0 个答案:

没有答案