UISearchBar CGContext ERROR UISearchBar CGContext ERROR ios ios

UISearchBar CGContext ERROR


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


This went away for me after deleting the iOS Simulator preferences from ~/Library/Preferences.

Go to ~/Library/PreferencesDrop "com.apple.iphonesimulator.plist" to the trash.

Stateful


It appears that the UISearchBar's AutoLayout constraints that are set in the .xib file are causing this problem. If there are any redundant or conflicting constraints that weren't caught by the compiler it can cause a drawing error and throw these errors.

  1. Go to the .xib file that has the UISearchBar
  2. Click on the UISearchBar and go to the Size Inspector (looks like a ruler, usually on the right side with the control's properties)
  3. One by one, click on each constraint and watch to see where they are - no two constraints should be measuring the same property. For example, on mine, I had one constraint measuring from the top of the control to the top of the view, and another constraint measuring from the bottom of the control to the top of the view.
  4. Remove any offending constraints, build, and run! If that doesn't work, you may want to check the constraints on the surrounding controls.