2012-02-01 86 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