1.UITextField的初始化和设置
1
textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];
2
[textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型
3
textField.placeholder = @"password"; //默认显示的字
4
textField.secureTextEntry = YES; //密码
5
textField.autocorrectionType = UITextAutocorrectionTypeNo;
6
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
7
textField.returnKeyType = UIReturnKeyDone;
8
textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X
9
textField.delegate = self;
2.要实现的Delegate方法,关闭键盘
view sourceprint?
1
- (BOOL)textFieldShouldReturn:(UITextField *)textField
2
{
3
[self.textField resignFirstResponder];
4
return YES;
5
}
最右侧加图片是以下代码,
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;
}
分享到:
相关推荐
UITextField+Extension 是 UITextField扩展 使用runtime实现,完美支持第三方键盘,实现上移效果 通过添加UITextField类目,使用runtime实现,TextField被遮挡时视图上移效果 点击对应的父视图的空白地方回收键盘,...
`UITextField+BlockDemo` 是一个示例项目,它展示了如何通过扩展`UITextField` 类并使用Blocks(block语法)来增强其功能,使得在处理用户输入事件时更加灵活便捷。这个项目的核心就是将传统的Delegate模式与Blocks...
在这篇关于"swift学习控件篇:UITextField+UISwitch+UISlider+UIImageView"的文章中,我们将深入探讨四个常用的UI控件:UITextField、UISwitch、UISlider和UIImageView,并理解如何在Swift中使用它们。 首先,...
在Objective-C中,我们可以创建一个名为`UITextField+Limitation.h`的头文件和`UITextField+Limitation.m`的实现文件。在`UITextField+Limitation.h`中,声明一个方法: ```objc #import @interface UITextField ...
在这个文件中,开发者可能定义了一个类别(Category)`UITextField+TextWithFinishButton`。类别在Objective-C中是一种强大的工具,可以为已有的类添加新的方法,而无需继承。在这个类别中,可能包含了用于键盘管理...
1. **UITextField+Jex.h**:头文件声明了扩展类的方法签名。 2. **UITextField+Jex.m**:实现文件提供了具体的实现逻辑。 #### 类扩展详解 ##### 1. **UITextField (Jex)** 这是一个类别(Category)的实现,通过...
在这个项目中,开发者创建了一个名为 `UITextField+MaxLength` 的分类,通过这个分类我们可以在 `UITextField` 对象上直接调用设置最大长度的方法。 具体实现可以如下: 1. 首先,创建一个名为 `UITextField+...
在iOS开发中,`UITextField`是用户界面中用于输入文本的基本元素。它的功能强大且灵活,可以用于创建各种形式的文本输入字段,如用户名、密码输入框等。本篇文章将详细探讨如何实现`UITextField`的键盘管理,包括...
核心概念UITextField + [Rule] +(以及可选的错误UILabel )进入Validator UITextField + ValidationError来自Validator Validator顺序评估[Rule]并在Rule失败时停止评估。安装# Podfilesource '...
针对描述中提到的`UITextField+hideKeyBoard.h`和`UITextField+hideKeyBoard.m`文件,这很可能是开发者为了方便处理键盘隐藏问题而创建的一个类别(Category)。在类别中,开发者可能添加了一个扩展方法,用于更方便...
// UITextField+BackWords.h #import @interface UITextField (BackWords) @end // UITextField+BackWords.m #import "UITextField+BackWords.h" @implementation UITextField (BackWords) - (void)...
在iOS开发中,`UITextField` 是一个至关重要的UI组件,它允许用户输入文本,并且广泛应用于各种场景,如登录、注册、搜索等。在标题提到的"炒股软件"上下文中,`UITextField` 可能被用来输入股票代码、设置价格预警...
在iOS开发中,`UITextField` 是一个常用的UI控件,用于接收用户输入的文本。在许多应用场景中,我们可能需要对用户输入的字符长度进行限制,例如手机号码、身份证号等,以确保数据的准确性和格式的一致性。标题提到...
#### 总结 通过对UITextField的`gestureRecognizers`进行操作,我们可以灵活地控制UITextField对于各种手势的响应行为。特别是在需要去除长按导致的复制粘贴框时,这种方法非常有效。同时,通过深入了解UITextField...
总结,通过监听`UITextField`的`textDidChangeNotification`通知,我们可以实现实时计算并获取`UITextField`中输入的汉字个数。这种方法在多种场景下都十分有用,例如短信验证码、评论输入等,能有效控制用户的输入...
在iOS开发中,`UITextField` 是一个非常重要的控件,用于接收用户输入文本。这个话题集中在`UITextField`的字体变化上,特别是在控件成为第一响应者(focus)时以及失去焦点(resigning first responder)时的行为。...
在iOS开发中,`UITextField`和`UITextView`是两种常用的文本输入控件。`UITextField`通常用于单行文本输入,而`UITextView`则适用于多行文本输入。然而,在某些场景下,开发者可能希望`UITextView`具备`UITextField`...
在iOS应用开发中,UITextField是苹果提供的一个核心控件,用于接收用户输入的文本信息。这个控件在各种场景下非常常见,如登录界面的用户名和密码输入、搜索框等。在本“UITextField 文本字段控件 - iOS开发”小Demo...
UITextField是iOS开发中用于输入文本的基本控件,它在用户界面设计中扮演着重要的角色。在iOS应用中,用户通常需要通过UITextField来输入用户名、密码等信息。了解并熟练掌握UITextField的各种属性和设置方法,能...
在iOS开发中,`UITextField` 是一个至关重要的UI组件,用于接收用户输入文本。本教程将深入探讨`UITextField`在Objective-C中的应用,通过实际的Demo实例帮助开发者更好地理解和掌握其使用方法。在这个名为...