在没有textField的情况下捕获文本输入

时间:2012-02-01 16:56:15

标签: ios ipad bluetooth textinput

这是专业人士的问题...... 我正在开发Ipad上的应用程序,我正在使用带蓝牙的条形码阅读器。我已经将条形码阅读器与我的Ipad同步,我可以在textField上捕获文本而不会出现问题。 当我读取条形码时,我不想将它放在textField上,我想在类上捕获它,处理它并决定如何处理它。我在互联网上搜索了它的方法,但我找不到它。有人可以帮帮我吗?我可以为委托做一个接收输入字符串的类吗?

我有点失落,任何帮助对我都非常有用

感谢您的时间!!

2 个答案:

答案 0 :(得分:1)

我已经解决了创建隐藏文本字段的问题,该文本字段在创建viewcontroller时成为第一个响应者。在我完成了相同的viewController之后,这个文本字段的委托。当BT代码栏阅读器执行读操作时,他在结尾处返回,因此它调用 - (BOOL)textFieldShouldReturn:我处理信息的地方。我希望这对于未来遇到同样问题的人有用。我发布了代码:

_textSender = [[UITextField alloc] initWithFrame:CGRectMake(150, 300, 300, 25)]; [_textSender setBackgroundColor:[UIColor whiteColor]]; [self.view addSubview:_textSender]; _textSender.hidden=YES; [_textSender becomeFirstResponder]; _textSender.delegate=self;

- (BOOL)textFieldShouldReturn:(UITextField *)textField{ [messageSenderProtocolDelegate message:textField.text]; return YES; }

这不是一种美丽的方式,它给我一个小问题,当BT条形码断开键盘出现,这对我不利。我希望我的视图在没有键盘的情况下干净整洁。现在我将研究它是否是键盘显示时调用的函数,以防止他显示

如果有人有任何建议,那将是有用的,但感谢你的帮助Erik!

答案 1 :(得分:0)

您可以使用子类UIApplication并覆盖

来捕获任何事件
- (void)sendEvent:(UIEvent *)event

私有UIEvent头声明了以下方法

- (GSEventRef)_gsEvent;

GSEventRef在名为GraphicsServices的私有框架中声明。如果您能为您的活动找到有用的信息,请查看那里。

我会尝试从_GSEventGetGSEventRecord记录一些标记。

你可以四处寻找,但如果你需要特定的东西,请确保你提交rdar://

如果您需要使用私有内容,请编写代码,以便在内容发生变化时不会中断(或者在没有崩溃的情况下中断)。