I have this textField
who doing text on center?///////////////////////////////////
textPredmet = [[UITextField alloc] initWithFrame:CGRectMake(20, 55, 200, 40)];
textPredmet.borderStyle = UITextBorderStyleNone;
textPredmet.textColor = [UIColor blackColor]; //text color
textPredmet.font = [UIFont systemFontOfSize:15.0]; //font size
[textPredmet drawTextInRect:CGRectMake( 30,55,200,40)];
textPredmet.placeholder = #"Введите текст"; //place holder
textPredmet.backgroundColor = [UIColor clearColor]; //background color
textPredmet.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction support
textPredmet.keyboardType = UIKeyboardTypeDefault; // type of the keyboard
textPredmet.returnKeyType = UIReturnKeyDone; // type of the return key
textPredmet.clearButtonMode = UITextFieldViewModeWhileEditing; // has a clear 'x' button to the right
textPredmet.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed
textPredmet.background = [UIImage imageNamed:#"input.png"];
textPredmet.textAlignment=UITextAlignmentLeft+1;
[self.view addSubview:textPredmet];
Set below line to your code.
textPredmet.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
It will set the text center vertically.
textPredmet.textAlignment = UITextAlignmentCenter;
It will set the text center horizontally.
Also, remove below lines from your code.
[textPredmet drawTextInRect:CGRectMake( 30,55,200,40)];
I guess, UITextAlignmentLeft+1 == UITextAlignmentCenter
Related
I am adding a UITextField's layer as a sublayer to an existing layer that is actually a UIImageView. I apply perspective rotation on the image view and it works fine. But the UITextField does not become active. The beginFirstResponder message to it does not show the keyboard. Tapping it doesn't work, it stays inactive from user interaction. I also tried setting the zPosition for the textfield's layer so that it is above the imageview layer and it's zPosition.
rightband = [[UIImageView alloc] initWithImage:[UIImage imageNamed:#"right-band.png"]];
rightband.layer.frame = CGRectMake(623.5, 310.5, 624, 210);
rightband.layer.zPosition = 40.0f;
usernameField = [[UITextField alloc] initWithFrame:CGRectMake(10, 10, 260, 26)];
usernameField.clearButtonMode = UITextFieldViewModeWhileEditing;
usernameField.keyboardType = UIKeyboardTypeDefault;
usernameField.autocapitalizationType = UITextAutocapitalizationTypeNone;
usernameField.borderStyle = UITextBorderStyleNone;
usernameField.backgroundColor = [UIColor clearColor];
usernameField.font = [UIFont fontWithName:#"HelveticaNeue" size:17];
usernameField.textColor = UIColorFromRGB(0x303030);
usernameField.textAlignment = UITextAlignmentLeft;
usernameField.placeholder = #"Username";
usernameField.autocorrectionType = UITextAutocorrectionTypeNo;
usernameField.returnKeyType = UIReturnKeyNext;
usernameField.delegate = self;
usernameField.layer.anchorPoint = CGPointMake(1.0f, 0.5f);
usernameField.layer.zPosition = 100.0f;
usernameField.layer.frame = CGRectMake(10, 10, 260, 26);
[rightband.layer addSublayer:usernameField.layer];
You should add the text field view in order for it to respond to touches.
So do :
[rightband addSubview:usernameField];
Can you try to change the view heirarchy to the following
UIView -> UIImageView and UITextField
Dont add the UITextField as a child to UIImageView
The UITextField and UIImageView will be both child's to a UIView
I am having a uitexview in that would like to have uibutton.when tapping on that button i want do some actions.So i did as below
UITextView *myTextView = [[UITextView alloc] init];
myTextView.frame = CGRectMake(10, 100, 300, 80);
myTextView.layer.borderWidth = 1.0f;
myTextView.layer.cornerRadius = 5;
myTextView.clipsToBounds = YES;
myTextView.layer.borderColor = [[UIColor grayColor] CGColor];
[self.view addSubview:myTextView];
[myTextView sizeToFit];
[myTextView release];
// Create an UIButton
UIButton *pickerBtn = [UIButton buttonWithType: UIButtonTypeCustom];
// Set its background image for some states...
UIImage *pickerImage = [UIImage imageNamed:#"picker.png"];
[pickerBtn setBackgroundImage: pickerImage forState:UIControlStateNormal];
// Add target to receive Action
[pickerBtn addTarget: self action:#selector(showPicker:) forControlEvents:UIControlEventTouchUpInside];
// Set frame width, height
pickerBtn.frame = CGRectMake(-25, -10, 50, 30);
pickerBtn.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
pickerBtn.titleLabel.font = [UIFont boldSystemFontOfSize:13];
pickerBtn.titleLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
pickerBtn.titleLabel.shadowOffset = CGSizeMake(0, -1);
pickerBtn.bounds = CGRectInset(button.bounds, -3, 2);
pickerBtn.titleLabel.textColor = [UIColor whiteColor];
[myTextView addSubview:pickerBtn];
But what my problem is cursor shows even on that button.
Is there any better way to do wat i am trying now
Please let me know and thanks
You have to measure the length of the text and put the button at the end text and when click on the show the picker and append the text. i think this is way you can do.
I have a UITextField inside of a UITableView cell. When I rotate the device, the textfield is still the same width it was for Portrait mode. I know that I need to use autoresizing to make the field fill the cell when I am in landscape, but I am not sure how to do this, as I have tried and failed.
How would I do this?
cell.textLabel.text = #"Email";
UITextField *field2 = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, width, 30)];
field2.adjustsFontSizeToFitWidth = YES;
field2.textColor = [UIColor blackColor];
field2.keyboardType = UIKeyboardTypeEmailAddress;
field2.returnKeyType = UIReturnKeyNext;
field2.placeholder = #"Required";
field2.tag = 3;
field2.delegate = self;
field2.autoresizingMask = UIViewAutoresizingFlexibleWidth;
field2.backgroundColor = [UIColor blueColor];
// Finish building cell
field2.autocorrectionType = UITextAutocorrectionTypeNo;
field2.autocapitalizationType = UITextAutocapitalizationTypeNone;
field2.textAlignment = UITextAlignmentLeft;
[field2 addTarget:self action:#selector(updateFields:) forControlEvents:UIControlEventEditingChanged];
field2.text = email;
self.emailField = field2;
[cell addSubview:field2];
[field2 release];
Check if you tableView has Auto Resize subivew is set to YES.
Check you are returning YES for all the supported rotations.
(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:
(NSTimeInterval)duration{
}
i would like to know configuration about UITextField standard please
- (IBAction)add:(id)sender
{
UITextField * textfieldToAdd = [[[UITextField alloc] init] autorelease];
// ... configuration code for textfield ...
[self.view addSubview:textfieldToAdd];
}
Here is a code from Apple's example UICatalog
#pragma mark -
#pragma mark Text Fields
- (UITextField *)textFieldNormal
{
if (textFieldNormal == nil)
{
CGRect frame = CGRectMake(kLeftMargin, 8.0, kTextFieldWidth, kTextFieldHeight);
textFieldNormal = [[UITextField alloc] initWithFrame:frame];
textFieldNormal.borderStyle = UITextBorderStyleBezel;
textFieldNormal.textColor = [UIColor blackColor];
textFieldNormal.font = [UIFont systemFontOfSize:17.0];
textFieldNormal.placeholder = #"<enter text>";
textFieldNormal.backgroundColor = [UIColor whiteColor];
textFieldNormal.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction support
textFieldNormal.keyboardType = UIKeyboardTypeDefault; // use the default type input method (entire keyboard)
textFieldNormal.returnKeyType = UIReturnKeyDone;
textFieldNormal.clearButtonMode = UITextFieldViewModeWhileEditing; // has a clear 'x' button to the right
textFieldNormal.tag = kViewTag; // tag this control so we can remove it later for recycled cells
textFieldNormal.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed
// Add an accessibility label that describes what the text field is for.
[textFieldNormal setAccessibilityLabel:NSLocalizedString(#"NormalTextField", #"")];
}
return textFieldNormal;
}
- (UITextField *)textFieldRounded
{
if (textFieldRounded == nil)
{
CGRect frame = CGRectMake(kLeftMargin, 8.0, kTextFieldWidth, kTextFieldHeight);
textFieldRounded = [[UITextField alloc] initWithFrame:frame];
textFieldRounded.borderStyle = UITextBorderStyleRoundedRect;
textFieldRounded.textColor = [UIColor blackColor];
textFieldRounded.font = [UIFont systemFontOfSize:17.0];
textFieldRounded.placeholder = #"<enter text>";
textFieldRounded.backgroundColor = [UIColor whiteColor];
textFieldRounded.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction support
textFieldRounded.keyboardType = UIKeyboardTypeDefault;
textFieldRounded.returnKeyType = UIReturnKeyDone;
textFieldRounded.clearButtonMode = UITextFieldViewModeWhileEditing; // has a clear 'x' button to the right
textFieldRounded.tag = kViewTag; // tag this control so we can remove it later for recycled cells
textFieldRounded.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed
// Add an accessibility label that describes what the text field is for.
[textFieldRounded setAccessibilityLabel:NSLocalizedString(#"RoundedTextField", #"")];
}
return textFieldRounded;
}
- (UITextField *)textFieldSecure
{
if (textFieldSecure == nil)
{
CGRect frame = CGRectMake(kLeftMargin, 8.0, kTextFieldWidth, kTextFieldHeight);
textFieldSecure = [[UITextField alloc] initWithFrame:frame];
textFieldSecure.borderStyle = UITextBorderStyleBezel;
textFieldSecure.textColor = [UIColor blackColor];
textFieldSecure.font = [UIFont systemFontOfSize:17.0];
textFieldSecure.placeholder = #"<enter password>";
textFieldSecure.backgroundColor = [UIColor whiteColor];
textFieldSecure.keyboardType = UIKeyboardTypeDefault;
textFieldSecure.returnKeyType = UIReturnKeyDone;
textFieldSecure.secureTextEntry = YES; // make the text entry secure (bullets)
textFieldSecure.clearButtonMode = UITextFieldViewModeWhileEditing; // has a clear 'x' button to the right
textFieldSecure.tag = kViewTag; // tag this control so we can remove it later for recycled cells
textFieldSecure.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed
// Add an accessibility label that describes what the text field is for.
[textFieldSecure setAccessibilityLabel:NSLocalizedString(#"SecureTextField", #"")];
}
return textFieldSecure;
}
- (UITextField *)textFieldLeftView
{
if (textFieldLeftView == nil)
{
CGRect frame = CGRectMake(kLeftMargin, 8.0, kTextFieldWidth, kTextFieldHeight);
textFieldLeftView = [[UITextField alloc] initWithFrame:frame];
textFieldLeftView.borderStyle = UITextBorderStyleBezel;
textFieldLeftView.textColor = [UIColor blackColor];
textFieldLeftView.font = [UIFont systemFontOfSize:17.0];
textFieldLeftView.placeholder = #"<enter text>";
textFieldLeftView.backgroundColor = [UIColor whiteColor];
textFieldLeftView.keyboardType = UIKeyboardTypeDefault;
textFieldLeftView.returnKeyType = UIReturnKeyDone;
textFieldLeftView.clearButtonMode = UITextFieldViewModeWhileEditing; // has a clear 'x' button to the right
textFieldLeftView.tag = kViewTag; // tag this control so we can remove it later for recycled cells
// Add an accessibility label that describes the text field.
[textFieldLeftView setAccessibilityLabel:NSLocalizedString(#"CheckMarkIcon", #"")];
textFieldLeftView.leftView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:#"segment_check.png"]];
textFieldLeftView.leftViewMode = UITextFieldViewModeAlways;
textFieldLeftView.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed
}
return textFieldLeftView;
}
Go through the reference doc for UITextField Class also try to read UITextFieldDelegate. Look for the different tasks that can be performed and see the methods, properties available for it. And use it according to your requirement.
Please take a look of the following screen shot.
alt text http://img442.imageshack.us/img442/8027/img0402k.png
Here is my code, I am using cocos2D
CGAffineTransform transform = CGAffineTransformMakeRotation(3.14159/2);
_view = [[CCDirector sharedDirector]openGLView];
// Input the user name
_nameField = [[UITextField alloc]initWithFrame:CGRectMake(130.0, 270.0, 200.0, 30.0)];
_nameField.transform = transform;
_nameField.adjustsFontSizeToFitWidth = YES;
_nameField.textColor = [UIColor blackColor];
[_nameField setFont:[UIFont fontWithName:#"Arial" size:14]];
_nameField.placeholder = #"<Enter Your Name>";
_nameField.backgroundColor = [UIColor clearColor];
_nameField.autocorrectionType = UITextAutocorrectionTypeNo;
_nameField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
_nameField.textAlignment = UITextAlignmentCenter;
_nameField.keyboardType = UIKeyboardTypeDefault;
_nameField.returnKeyType = UIReturnKeyDone;
_nameField.tag = 0;
_nameField.delegate = self;
_nameField.clearButtonMode = UITextFieldViewModeNever;
_nameField.borderStyle = UITextBorderStyleRoundedRect;
[_view addSubview:_nameField];
The problem is the text is aligned to the top of the text field.
I want it to be in the middle not to top. There is too much space in the bottom.
please suggest me the way.
Shouldn't this work?
_nameField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;