Disable UITextField keyboard?

后端 未结 10 2140
不知归路
不知归路 2020-11-27 15:42

I put a numeric keypad in my app for inputing numbers into a text view, but in order to input numbers I have to click on the text view. Once I do so, the regular keyboard co

相关标签:
10条回答
  • 2020-11-27 16:14

    For Swift 2.x, 3.x, 4.x, 5.x

    textField.inputView = UIView()
    

    does the trick

    0 讨论(0)
  • 2020-11-27 16:20

    The UITextField's inputView property is nil by default, which means the standard keyboard gets displayed.

    If you assign it a custom input view, or just a dummy view then the keyboard will not appear, but the blinking cursor will still appear:

    UIView* dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];    
    myTextField.inputView = dummyView; // Hide keyboard, but show blinking cursor
    

    If you want to hide both the keyboard and the blinking cursor then use this approach:

    -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
        return NO;  // Hide both keyboard and blinking cursor.
    }
    
    0 讨论(0)
  • 2020-11-27 16:20

    I have the same problem when had 2 textfields on the same view. My purpose was to show a default keyboard for one textfield and hide for second and show instead a dropdown list.

    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
    

    method simply did not work as I expected for 2 textfields , the only workaround I found was

        UIView* dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];    
        myTextField.inputView = dummyView; 
        myTextField.inputAccessoryView = dummyView; 
        myTextField.tintColor =  myTextField.backgroundColor; //to hide a blinking cursor
    

    This will totally hide the keyboard for a target textField (DropDownList in my case) and show a default one when user switches to the 2nd textfield (Account number on my screenshot)

    0 讨论(0)
  • 2020-11-27 16:24

    There is a simple hack to it. Place a empty button (No Text) above the keyboard and have a action Event assign to it. This will stop keyboard coming up and you can perform any action you want in the handle for the button click

    0 讨论(0)
提交回复
热议问题