由於iOS中提供的數字小鍵盤或電話板都沒有包含返回鍵(next或done),所以如何檢測可變長度數字輸入的輸入結束?iOS檢測數值字段輸入結束
使用完整的字母鍵盤是一種可能性,因爲它包含數字鍵集。但是這意味着向用戶提供需要編輯的額外可能性。
另一種可能性是需要在另一個數據輸入字段中進行選擇。這看起來不直觀,如果只有一個數字字段被捕獲,這是不可能的!
有沒有解決方案?
由於iOS中提供的數字小鍵盤或電話板都沒有包含返回鍵(next或done),所以如何檢測可變長度數字輸入的輸入結束?iOS檢測數值字段輸入結束
使用完整的字母鍵盤是一種可能性,因爲它包含數字鍵集。但是這意味着向用戶提供需要編輯的額外可能性。
另一種可能性是需要在另一個數據輸入字段中進行選擇。這看起來不直觀,如果只有一個數字字段被捕獲,這是不可能的!
有沒有解決方案?
是的,你可以使用UITapRecognizer檢測自來水和罷免鍵盤當某個視圖是使用
[UITextField resignFirstResponder];
一個快速的方法是簡單地增加一個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
如果你輸入到UITextField
我已經成功加入UITextFieldDelegate
我的ViewController的頭文件,然後在我的viewcontroller.m
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
使用這種添加'inputAccessoryView'到'UITextField'。這個視圖可以有你想要的任何按鈕(或其他UI元素)。一組常用的按鈕是Next/Previous按鈕和一個Done按鈕。 – rmaddy