如何设置UITextField的焦点

如题所述

1.UITextField的初始化和设置
textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];
[textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型

textField.placeholder = @"password"; //默认显示的字

textField.secureTextEntry = YES; //密码

textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
textField.returnKeyType = UIReturnKeyDone;
textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X

textField.delegate = self;
2.要实现的Delegate方法,关闭键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[self.textField resignFirstResponder];
return YES;
}
3. 可以在UITextField使用下面方法,按return键返回
-(IBAction) textFieldDone:(id) sender
{
[textFieldName resignFirstResponder];
}
链接TextField控件的"Did end on exit"
最右侧加图片是以下代码,
UIImageView *imgv=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
text.rightView=imgv;
text.rightViewMode = UITextFieldViewModeAlways;

如果是在最左侧加图片就换成:
text.leftView=imgv;
text.leftViewMode = UITextFieldViewModeAlways;
UITextField 继承自 UIControl,此类中有一个属性contentVerticalAlignment
所以想让UITextField里面的text垂直居中可以这样写:
text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
查看函数的方法:
按住command键双击进入函数声明
按住alt键双击进入doc文档
///////////////////////////////////////////////////////////////
文本框常用方法:
如何用程序删除文本框中选中的文本
[textView delete: nil];
///////////////////////////////////////////////////////////////
如何限制文本框只能输入数字:
建立NSNumberFormatter的子类,增加这个方法,将formatter链接至文本框。

- (BOOL) isPartialStringValid: (NSString **) partialStringPtr
proposedSelectedRange: (NSRangePointer) proposedSelRangePtr
originalString: (NSString *) origString
originalSelectedRange: (NSRange) origSelRange
errorDescription: (NSString **) error
{
NSCharacterSet *nonDigits;
NSRange newStuff;
NSString *newStuffString;

nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
newStuff = NSMakeRange(origSelRange.location,
proposedSelRangePtr->location
- origSelRange.location);
newStuffString = [*partialStringPtr substringWithRange: newStuff];

if ([newStuffString rangeOfCharacterFromSet: nonDigits
options: NSLiteralSearch].location != NSNotFound) {
*error = @"不是数字";
return (NO);
} else {
*error = nil;
return (YES);
}

}
///////////////////////////////////////////////////////////////
从文本框获取十六进制数据的代码
char singleNumberString[3] = {'\0','\0','\0'};
uint32_t singleNumber = 0;
uint32_t i = 0;
NSMutableData *data = [NSMutableData data];
//从文本框获取到得数据
const char *buf = [[_hexToSendTextField text] UTF8String];
//转换为十六进制
for(i = 0; i < strlen(buf); i+=2)
{
if(((i+1) < len && isxdigit(buf) && (isxdigit(buf[i+1])))
{
singleNumberString[0] = buf;
singleNumberString[1] = buf[i+1];
sscanf(singleNumberString, "%x", &singleNumber);
[data appendBytes:(void*)(&tmp) length:1];
}
else
{
break;
}
}
//输出
NSLog(@"%@", data);
/////////////////////////////////////////////////////////////
点击 UITextView 输入文字,光标都从最初点开始
- (void)textViewDidChangeSelection:(UITextView *)textView
{
NSRange range;
range.location = 0;
range.length = 0;
textView.selectedRange = range;
}
///////////////////////////////////////////////////////////
软键盘
在登录页面要实现用户名和密码,密码要是点点格式,引入当前页面光标要停留在用户名选项,软键盘要弹出界面。如下图:
弹出键盘:
[username becomeFirstResponder];
取消键盘:
[username resignFirstResponder];
密码保护:
password.secureTextEntry=YES;
//////////////////////////////////////////////////////////////////
1.UITextField的初始化和设置
textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];
[textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型
textField.placeholder = @"password"; //默认显示的字
textField.secureTextEntry = YES; //密码
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
textField.returnKeyType = UIReturnKeyDone;
textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X
textField.delegate = self;
2.要实现的Delegate方法,关闭键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[self.textField resignFirstResponder];
return YES;
}
3. 可以在UITextField使用下面方法,按return键返回
-(IBAction) textFieldDone:(id) sender
{
[textFieldName resignFirstResponder];
}
链接TextField控件的"Did end on exit"
////////////////////////////////////////////////////////////////////
限制输入文本的长度
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (range.location >= MAX_LENGTH)
return NO; // return NO to not change text
return YES;
}
if (textField.text.length >= 10 && range.length == 0)
return NO;
return YES;
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([textField.text length] > MAXLENGTH)
{
textField.text = [textField.text substringToIndex:MAXLENGTH-1];
return NO;
}
return YES;
}
//////////////////////////////////////////////////////////////////////
使用UITextFieldDelegate来隐藏键盘
在iPhone界面上,时常会需要当用户输入完内容后,隐藏键盘。 当然有很多方法,今天只介绍使用UITextFieldDelegate这个协议实现隐藏键盘。
其实很简单, 需要三步:
1. 在你的控制器类中,加入UITextFieldDelegate这个协议
如:@interface AddItemViewController : UIViewController <UITextFieldDelegate>
2. 在使用了UITextFieldDelegate协议的控制器类的实现中,加入- (BOOL)textFieldShouldReturn:方法。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {

[textField resignFirstResponder];
return YES;
}
//设置焦点:

[UITextField becomeFirstResponder];

3. 将xib文件中的TextField控件的delegate变量指向到之前使用UITextFieldDelegate协议的那个控制器类,将 TextField的delegate IBOutlet变量右键链接到前面的控制器类的实例上。或者使用代码方式,指定相关TextField的delegate变量。

- (void)viewDidLoad

{

[super viewDidLoad];

itemNameField.delegate = self;

priceField.delegate = self;

}
温馨提示:内容为网友见解,仅供参考
无其他回答

(IOS)设置UITextField光标位置
\/\/ textField需要设置的textField,index要设置的光标位置 - (void)cursorLocation:(UITextField*)textField index:(NSInteger)index {     NSRangerange =NSMakeRange(index,0);    UITextPosition*start = [textFieldpositionFromPosition:[textFieldbeginningOfDocument]offset:...

iOS UITextField光标\/文字起始位置
设置 UITextField 的 leftView 和 leftViewMode 属性即可 项目中有一个需求: UITextField 中没有内容时,显示一个搜索图标和placeholder文本,搜索图标、光标、placeholder位置在 UITextField 居中;当 UITextField 中有输入文本时,搜索图标消失,光标和输入文本在 UITextField 左对齐 使用上述方法二,根...

UITextField失去焦点事件问题,怎么解决
有两种方法: 方法一:用密码输入框代替TextField 方法二:你可以写一个监听TextField的输入事件,每写入一个字符,就把字符用其他符号代替回写到TextField中。

IOS怎么样在UITextField中,点击他的时候只出现光标不出现键盘
先add背景图,再add uilabel,再add uitextfield 都add在self.view下面 userImage.userInteractionEnabled = YES;满意采纳下

如何调整UITextField文字内容位置,使其不贴边框显示
UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];textField.leftView = paddingView;textField.leftViewMode = UITextFieldViewModeAlways;弄个空的leftview,文字就在leftview后面显示 转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦 ...

iOS 中如何获取textfield的第一响应者
你是有多个UITextfield吧,是不是打算设置下一个响应者,调用这个becomeFirstResponder,在UIResponder里面有获取下一响应者nextResponder。这个是视图层的。

怎么设置可以使textfield在点击右下角的时候可以自动跳到下一个输入框...
你可以定义2个textfield,可以通过设置textfield1、textfield2.的如下属性 property(nonatomic) UIReturnKeyType returnKeyType; \/\/ default is UIReturnKeyDefault (See note under UIReturnKeyType enum)textfield1.returnKeyType = UIReturnKeyNext ;textfield2.returnKeyType = UIReturnKeyDone ;当然这个过程中...

textField的属性、方法、文字内容、边框样式设置
\/\/设置边框样式,只有设置了才会显示边框样式 \/\/按return键键盘往下收 becomeFirstResponder 类要采用UITextFieldDelegate协议 text.delegate = self; 声明text的代理是我,我会去实现把键盘往下收的方法 这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议 重写绘制行为 除了UI...

uitextfield的代理方法,怎么处理输入文本框被键盘遮挡
1)将输入框的代理设置为self (在lb文件中将输入框的delegate设置为File’s Owner 。或者使用代码textField.delegate = self;2)将输入框所对应的ViewController.h设置实现了UITextFieldDelegate协议 在ViewController.m文件中实现UITextFieldDelegate的三个方法即可:[cpp] view plaincopy \/\/开始编辑输入框...

UITextField 显示的时候怎么处于选中的状态
1.监听每次键盘UITextField输入文字的改变.这边的_searchBar是UITextField [_searchBar addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingChanged];2.判断当前是否有非选中的文字, 如果有则过滤调, 不调用具体的功能.只有没有选中的文字, 才相当于用户输入结束....

相似回答