2014-02-26 31 views
0

iOS中,單擊UITextField時,將彈出系統默認數字鍵盤。我做了我自己的控制。我想單擊UITextField時提出自己的控制,就像系統默認的數字鍵盤一樣。我可以在編程中做到嗎?如果是這樣,怎麼樣?單擊UITextField時顯示自定義控件

回答

0

嘗試下面的代碼。確保您將代表分配到UITextField

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    CustomNumberPadViewController *customNumberPadViewController = [[CustomNumberPadViewController alloc] initWithNibName:@"CustomNumberPadView" bundle:nil]; 
    [self presentViewController:CustomNumberPadViewController animated:YES completion:nil]; 
} 
0

使用自定義視圖和自定義按鈕。鍵盤本身是很容易做的事,你只需要在視圖上放置一些按鈕,然後顯示該視圖。你真正的問題是將按鈕操作連接到文本字段。

您必須檢查第一個響應者,然後在其文本中添加與您的自定義鍵盤相對應的值。在文本字段中實際從鍵盤輸入那些奇怪的字符將會是一個更加困難的問題。我不熟悉它們,那些真正的ASCII字符?

無論如何,你在相當一些工作。這不是很難編碼,需要一些複雜的算法,但實現將是棘手和複雜的,所以要小心

+0

我只想顯示一個定製的數字鍵盤。那麼如何在點擊時提醒它? –

2

你可以隱藏鍵盤[self.view endEditing:YES];並顯示你自己的控制。

嘗試了上述下面UITextField委託方法的代碼行:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;  // return NO to disallow editing. 
- (void)textFieldDidBeginEditing:(UITextField *)textField;   // became first responder 
+0

那麼點擊時如何添加我自己的控件? –

+0

@GoddessGuard - 你可以通過動畫來做 –

+0

你可以通過提供一個視圖控制器來控制它。 –

2

有一個這樣的屬性。簡單地將其與您的自定義控件的視圖分配如下:

[yourTextField setInputView:yourCustomControlsView]; 
相關問題