2012-11-05 32 views

回答

0

我知道沒有UITextField的唯一方法是創建並添加(私人,無證的UIKeyBoard類的實例。您可以在showKeyboard:animated:方法中找到執行here

+0

他可以做到UIView子類和實現UIKeyInput協議。現在我發佈答案。 – LombaX

1

將UITextField添加到您的視圖並調用它[myTextfield becomeFirstResponder];然後將其設置爲隱藏myTextfield.hidden = true - 因此用戶將永遠不會看到文本字段。

+0

現在閱讀標題。 – 2012-11-05 21:44:53

+1

這就是我會做的。使用一個私人和無證的類(比如@ H2CO3建議)是一個比隱藏的UITextField恕我直言更糟糕的解決方案。 –

+0

@ErikTjernlund「這就是我會做的」,而實際上回答問題的解決方案是兩個不同的東西。 OP要求沒有UITextField的解決方案,我向他提供了一個解決方案。 – 2012-11-05 22:05:28

1

你可以做到這一點:

  • UIView的子類(這是UIResponder的子類)

  • 讓你的UIView Subclas符合協議UIKeyInput。要做到這一點添加 < UIKeyInput> 在類聲明和此代碼.m文件

添加以下代碼:

-(BOOL)hasText; 
{ 
    return YES; 
} 
-(void)insertText:(NSString *)text; 
{ 
    // what to do when a text is inserted 
} 

-(void)deleteBackward; 
{ 
    // what to do when delete is pressed 
} 

-(BOOL)canBecomeFirstResponder 
{ 
    // return yes if your control can become first responder and show the keyboard 
    return YES; 
} 
  • 創建該自定義視圖的新實例,並添加它作爲當前窗口的子視圖(否則它將不起作用)

然後,要顯示鍵盤,您必須將simp ly調用[myView becomeFirstResponder]; 剛剛嘗試過,效果很好。

編輯:還沒有嘗試過,但它應該工作的子類不僅UIView的,但所有的那種是的UIView的子類,並可以在窗口層次結構中添加的對象的,只是它必須符合UIKeyInput協議