2012-02-01 87 views
1

这里的利弊问题... 我正在开发一个应用程序在Ipad上,我正在使用蓝牙条形码阅读器。我已将条形码读取器与我的Ipad同步,并且我可以在textField上捕获文本而不会出现任何问题。 当我阅读条形码时,我不想将它放在textField上,我想在课堂上捕捉它,处理它并决定如何处理它。我在互联网上搜索的方式来做到这一点,但我找不到它。有人可以帮助我吗?我可以做一个类委托来接收输入字符串吗?捕捉文本输入没有文本字段

我与它有点失落和任何帮助将是非常有用的,我

谢谢你的时间!

+0

textField现在如何连接? – Rayfleck 2012-02-01 16:59:47

回答

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条形码断开键盘出现,这就是对我不好。我希望我的视图始终不带键盘。现在我将研究它是否是在键盘显示时被调用的功能,以防止他显示

如果有人有任何建议,它将是有用的,但要感谢您的帮助埃里克!

0

你可以通过使用一个子类UIApplication和压倒一切的

- (void)sendEvent:(UIEvent *)event 

私人的UIEvent头捕捉任何事件声明了以下方法

- (GSEventRef)_gsEvent; 

GSEventRef被称为GraphicsServices私人框架声明。如果您可以找到有关您的活动的有用信息,请在此处查看。

我会尝试从_GSEventGetGSEventRecord登录一些标志。

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

如果你需要使用私人东西,那么编写你的代码的方式不会因为某些事情发生变化而破坏(或者不会崩溃)。

+0

嗨,Erik! 首先感谢您的关注,我已经对您的建议进行了一些测试,问题是键盘的UIEvent是一个私人的UIEvent,所以我无法抓住它。 为了测试它,我已经子类化了UIApplication,并重写了如下的sendEvent函数: ' - (void)sendEvent:(UIEvent *)event {super sendEvent:event]; NSLog(@“Event type:%i Event subtype:%i”,event.type,event。亚型); }'\ n 而且我已经看到该类型为-1,所以这是一个私人事件,我无法处理。任何其他想法?我能以其他方式处理事件吗? 感谢您的帮助 – Jpellat 2012-02-01 22:08:39

+0

子类型说什么? – 2012-02-01 23:12:31

+0

嗨Eric的子类型为0.我已经解决了不同的问题,现在我发布它,以便对其他程序员有用,但感谢您的帮助! – Jpellat 2012-02-02 10:39:38