2012-02-11 27 views
0

我們希望我們的應用能夠顯示其中一個內置鍵盤(特別是數字鍵盤),並且能夠響應鍵盤按鍵等,但不能通過屏幕上的任何內容(例如UITextView)進行響應。實際上我們只是通過電線將這些按鍵發送出去,而不想用鍵盤重新設計輪子。把它想象成我們使用鍵盤作爲UIButtons的矩陣,而不是我們必須手動創建自己的,然後擔心外觀和感覺等等。如何與屏幕上沒有UITextView的iPhone鍵盤進行交互?

這就是說,

  1. 我們如何可以顯示鍵盤沒有UITextView或類似的控制屏幕
  2. 我們如何選擇要顯示的一個上(再次,我們要的數字之一。)
  3. 我們如何迴應KeyDown/KeyUp/KeyPress訊息或你有什麼。

回答

1

您需要一個隱藏的UITextField,並且指定適當的keyboard type,您可以使其成爲第一響應者。您通過使用text field delegate methods來回應鍵盤輸入。

雖然這不是一個不尋常的用戶界面,但沒有屏幕上的按鍵反饋。

+0

有反饋,但其在圖形的形式,而不是一個可編輯的文本字段。如果你願意的話,我們只需使用鍵盤就好像它們是按鈕一樣,而不是創建我們自己的按鈕矩陣。你能設置隱藏的第一響應者嗎?沒想到這是被允許的。 (我傾向於脫離屏幕版本以達到同樣的效果)。最後一件事......出於好奇,你能通過IB設置第一響應者還是必須通過代碼來完成? (我們總是完成後者,但我總是討厭這個)。 – MarqueIV 2012-02-11 09:55:12

+0

不明白爲什麼隱藏狀態會影響第一響應者。如果是這樣,你可以把它關掉屏幕。第一個響應者狀態是通過代碼設置的,不知道如何通過IB執行它,因爲它可能在運行時更改。在某個地方有最初的第一響應者,但我不記得我頭頂的位置(甚至可能是OS X的東西,我離開我的MAC ATM) – jrturton 2012-02-11 10:22:44

0

隱藏的UITextView最安全的地方可能是在CGRectMake(0,view.frame.size.height,whateverWidth,whateverHeight)。然後,當你添加子視圖時:它將根據定義離開屏幕。如果你允許旋轉,你可能需要在didRotateFromInterfaceOrientation上重新定位框架 - 儘管可能將x和y都設置爲MAX(view.frame.size.height,view.frame.size.width),這總是會在屏幕之外。

否則,如果隱藏是一個問題,您可以使用阿爾法.03 - 這幾乎是不可見的,但仍然響應用戶交互。對於這個確切的問題,這不是一個答案,而是將它放在後面的口袋中供將來參考。

祝你好運,

達明