UISearchBar CGContext ERROR

后端 未结 4 1674
无人共我
无人共我 2020-12-24 04:46

I have a UISearchBar inside a view, whenever I tap on it, after the keyboard comes up -

after -(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar

4条回答
  •  不知归路
    2020-12-24 05:23

    It´s a known issue on which Apple is working on. Should be fixed in the next beta release.

    Have a look here: Xcode Number pad with decimal error

    Edit: For those who have that issue with a textfield maybe this should get you around:

    From Apple Developer Forums bye Popeye7 - So all credits to him

    I have found a fix for this issue! I have 3 apps that this is now broken on, so, to me... this is a good find. Found the solution on StackOverflow... combined two answers to a similar question.

    In my case, a user taps a barButtonItem and an "alert" or dialog appears.

    I see the big difference is in how the UIAlertView is allocated. The "NEW WAY" has the textField showing and brings up the keyboard as it should.

    I am now able to see the textField, enter text and it works the way I expect it to. Adding the "initWithFrame" back in has no affect on the textField placement.

    OLD WAY....

    - (IBAction)addEntryTapped:(id)sender
    
    {
    
        [_editorTextView resignFirstResponder];
        [self saveTextChanges];
        [self dismissPopovers];
    
        _prompt = [[UIAlertView alloc] initWithTitle:@"New Entry Title..."
                                             message:@"\n\n\n" // IMPORTANT
                                            delegate:self
                                   cancelButtonTitle:@"Cancel"
                                   otherButtonTitles:@"OK", nil];
    
        _textField = [[UITextField alloc] initWithFrame:CGRectMake(17.0, 55.0, 250.0, 25.0)];
    
        [_textField setBackgroundColor:[UIColor whiteColor]];
        [_textField setPlaceholder:@"New Entry Title"];
    
        _textField.borderStyle = UITextBorderStyleRoundedRect;
        _textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
        _textField.autocorrectionType = UITextAutocorrectionTypeNo;
    
        [_prompt addSubview:_textField];
        [_prompt show];
    
        // set cursor and show 
        [_textField becomeFirstResponder];
    }
    

    NEW WAY...

    - (IBAction) addEntryTapped:(id)sender
    {
        [_editorTextView resignFirstResponder];
        [self saveTextChanges];
        [self dismissPopovers];
    
        _prompt = [[UIAlertView alloc] init];
        _prompt.alertViewStyle = UIAlertViewStylePlainTextInput;
    
        UITextField *text = [_prompt textFieldAtIndex:0];
        _textField = text;
    
        [_prompt setDelegate:self];
        [_prompt setTitle:@"New Entry Title..."];
        [_prompt setMessage:@""];
        [_prompt addButtonWithTitle:@"Cancel"];
        [_prompt addButtonWithTitle:@"OK"];
        [_textField setPlaceholder:@"New Entry Title"];
    
        _textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
        _textField.autocorrectionType = UITextAutocorrectionTypeNo;
    
        [_prompt show];
    
        // set cursor and show keyboard
        [_textField becomeFirstResponder];
    }  
    

    Message was edited by Popeye7 on 9/25/13 at 12:25 PM

    Message was edited by Popeye7 on 9/25/13 at 12:33 PM

提交回复
热议问题