2013-06-30 52 views
1

由於iOS中提供的數字小鍵盤或電話板都沒有包含返回鍵(next或done),所以如何檢測可變長度數字輸入的輸入結束?iOS檢測數值字段輸入結束

使用完整的字母鍵盤是一種可能性,因爲它包含數字鍵集。但是這意味着向用戶提供需要編輯的額外可能性。

另一種可能性是需要在另一個數據輸入字段中進行選擇。這看起來不直觀,如果只有一個數字字段被捕獲,這是不可能的!

有沒有解決方案?

+2

使用這種添加'inputAccessoryView'到'UITextField'。這個視圖可以有你想要的任何按鈕(或其他UI元素)。一組常用的按鈕是Next/Previous按鈕和一個Done按鈕。 – rmaddy

回答

1

是的,你可以使用UITapRecognizer檢測自來水和罷免鍵盤當某個視圖是使用

[UITextField resignFirstResponder]; 
2

一個快速的方法是簡單地增加一個UITapGestureRecognizer到可以消除鍵盤背後的觀點竊聽鍵盤時抽頭像這樣

// UITapGestureRecognizer property 
@property (strong, nonatomic) UITapGestureRecognizer *singleTap; 

// Add gesture recognizer to remove keyboard 
_singleTap = [[UITapGestureRecognizer alloc] 
           initWithTarget:self 
           action:@selector(dismissKeyboard)]; 
_singleTap.cancelsTouchesInView = NO; 
[self.view addGestureRecognizer:_singleTap]; 

// Method to remove keyboard 
- (void)dismissKeyboard 
{ 
    [self.view endEditing:YES]; 
} 

另一個辦法是一個無論是完成按鈕添加到數字鍵盤本身或經由inputAccessoryView如這裏所示http://timbroder.com/2012/08/adding-done-and-cancel-buttons-to-an-ios-number-pad.html

1

如果你輸入到UITextField我已經成功加入UITextFieldDelegate我的ViewController的頭文件,然後在我的viewcontroller.m

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
[self.view endEditing:YES]; 
}