2011-10-09 86 views
1

我想在我的應用程序中定義一個自定義鍵盤,當我在我的UITabBarController中按下一個TabBar項目,然後自定義鍵盤向上滑動,當我觸摸TabView時,我希望自定義鍵盤可以滑下,但是,由於自定義鍵盤在UITabBarController的視圖中添加,並且tableView在UITabControlController中添加一個UITabBarController的ViewController,它們不在同一個Class中,我怎樣才能定義鍵盤,並添加到哪個視圖?如何在我的應用程序中定義自定義鍵盤?

我想做的事情是這樣的:當 按標籤欄項目鍵盤向上滑動, http://i.stack.imgur.com/66NDu.png

當觸摸的tableview,鍵盤滑下。

http://i.stack.imgur.com/ZiHaR.png

回答

0
  1. 你爲什麼聲明在UITabBarController類自定義鍵盤?您可以在附加到該特定tabBarItem的視圖控制器中聲明它。如果您將其添加到該視圖控制器,我相信您可以將它製作成resignFirstResponderremoveFromSuperView並按照您的需要進行操作。

  2. 或者您可以爲您的customKeyboard創建一個單獨的類,並將其與其他類一起添加。只需包含該類,並在其他視圖控制器中創建對象來操縱它們,然後release即可。這是非常簡單的,與您的方法相比,這是更好的編程方式,因爲在稍後的時間點,如果您需要進行更改或發佈2.0版本的應用程序,它將派上用場並節省一些開發時間!

+0

SUggest自定義類:讓每個類做一件事。 – zaph

+0

非常感謝。因爲我想在UITabBarControllerDelegate中的方法「tabBarController didSelectViewController:」實現鍵盤滑動。 –

+0

@CocoaFu正好:) – Legolas

1

使用您的自定義鍵盤按鈕製作自定義UIView。 UITextField和UITextView有一個名爲inputView的屬性。如果您將自定義視圖設置爲此,iOS會自動處理文本字段上的resignFirstResponder和becomeFirstResponder消息。

這是使用自定義鍵盤最簡單的方法。

+0

如果你適合兩種類型,這是最好的解決方案1.你的輸入類是UITextField/UITextView 2的子類。你不必在iOS 3.2之前支持任何東西。 – Jonathan

+0

我正在使用這種方法,但如果我在我的控制器中創建自定義UIView的變量(其中我也有代表我的UITextField聲明的屬性),我如何從我的鍵盤類中獲取對UITextField的引用,所以當用戶點擊我的一個自定義鍵時,我可以調用它的insertText? –

+0

代表或塊是唯一的出路。 – Mugunth