`
xfjt297857539
  • 浏览: 153173 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

UITextField+总结(zhuan)

 
阅读更多
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+Extension 是 UITextField扩展 使用runtime实现,完美支持第三方键盘,实现上移效果 通过添加UITextField类目,使用runtime实现,TextField被遮挡时视图上移效果 点击对应的父视图的空白地方回收键盘,...

    UITextField+BlockDemo

    `UITextField+BlockDemo` 是一个示例项目,它展示了如何通过扩展`UITextField` 类并使用Blocks(block语法)来增强其功能,使得在处理用户输入事件时更加灵活便捷。这个项目的核心就是将传统的Delegate模式与Blocks...

    swift学习控件篇:UITextField+UISwitch+UISlider+UIimageView

    在这篇关于"swift学习控件篇:UITextField+UISwitch+UISlider+UIImageView"的文章中,我们将深入探讨四个常用的UI控件:UITextField、UISwitch、UISlider和UIImageView,并理解如何在Swift中使用它们。 首先,...

    iOS-UITextField自定义输入限制

    在Objective-C中,我们可以创建一个名为`UITextField+Limitation.h`的头文件和`UITextField+Limitation.m`的实现文件。在`UITextField+Limitation.h`中,声明一个方法: ```objc #import @interface UITextField ...

    iOS自带回收键盘的UITextField

    在这个文件中,开发者可能定义了一个类别(Category)`UITextField+TextWithFinishButton`。类别在Objective-C中是一种强大的工具,可以为已有的类添加新的方法,而无需继承。在这个类别中,可能包含了用于键盘管理...

    UITextField扩展

    1. **UITextField+Jex.h**:头文件声明了扩展类的方法签名。 2. **UITextField+Jex.m**:实现文件提供了具体的实现逻辑。 #### 类扩展详解 ##### 1. **UITextField (Jex)** 这是一个类别(Category)的实现,通过...

    UITextField-MaxLength:为UITextField添加最大长度

    在这个项目中,开发者创建了一个名为 `UITextField+MaxLength` 的分类,通过这个分类我们可以在 `UITextField` 对象上直接调用设置最大长度的方法。 具体实现可以如下: 1. 首先,创建一个名为 `UITextField+...

    UITextField

    在iOS开发中,`UITextField`是用户界面中用于输入文本的基本元素。它的功能强大且灵活,可以用于创建各种形式的文本输入字段,如用户名、密码输入框等。本篇文章将详细探讨如何实现`UITextField`的键盘管理,包括...

    SwiftValidator:一个基于规则的Swift验证库

    核心概念UITextField + [Rule] +(以及可选的错误UILabel )进入Validator UITextField + ValidationError来自Validator Validator顺序评估[Rule]并在Rule失败时停止评估。安装# Podfilesource '...

    UITextfieldresignFirstResponder键盘不回收

    针对描述中提到的`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)...

    UITextfield

    在iOS开发中,`UITextField` 是一个至关重要的UI组件,它允许用户输入文本,并且广泛应用于各种场景,如登录、注册、搜索等。在标题提到的"炒股软件"上下文中,`UITextField` 可能被用来输入股票代码、设置价格预警...

    UITextField现在输入字符长度

    在iOS开发中,`UITextField` 是一个常用的UI控件,用于接收用户输入的文本。在许多应用场景中,我们可能需要对用户输入的字符长度进行限制,例如手机号码、身份证号等,以确保数据的准确性和格式的一致性。标题提到...

    Iphone干掉UITextField的长按、双击等行为时的复制粘贴框

    #### 总结 通过对UITextField的`gestureRecognizers`进行操作,我们可以灵活地控制UITextField对于各种手势的响应行为。特别是在需要去除长按导致的复制粘贴框时,这种方法非常有效。同时,通过深入了解UITextField...

    UITextField动态获取汉字个数

    总结,通过监听`UITextField`的`textDidChangeNotification`通知,我们可以实现实时计算并获取`UITextField`中输入的汉字个数。这种方法在多种场景下都十分有用,例如短信验证码、评论输入等,能有效控制用户的输入...

    UITextField的字体变化

    在iOS开发中,`UITextField` 是一个非常重要的控件,用于接收用户输入文本。这个话题集中在`UITextField`的字体变化上,特别是在控件成为第一响应者(focus)时以及失去焦点(resigning first responder)时的行为。...

    UITextView 实现UITextField功能

    在iOS开发中,`UITextField`和`UITextView`是两种常用的文本输入控件。`UITextField`通常用于单行文本输入,而`UITextView`则适用于多行文本输入。然而,在某些场景下,开发者可能希望`UITextView`具备`UITextField`...

    UITextField 文本字段控件-IOS开发

    在iOS应用开发中,UITextField是苹果提供的一个核心控件,用于接收用户输入的文本信息。这个控件在各种场景下非常常见,如登录界面的用户名和密码输入、搜索框等。在本“UITextField 文本字段控件 - iOS开发”小Demo...

    UITextField常用属性及设置

    UITextField是iOS开发中用于输入文本的基本控件,它在用户界面设计中扮演着重要的角色。在iOS应用中,用户通常需要通过UITextField来输入用户名、密码等信息。了解并熟练掌握UITextField的各种属性和设置方法,能...

    UITextField Demo实例

    在iOS开发中,`UITextField` 是一个至关重要的UI组件,用于接收用户输入文本。本教程将深入探讨`UITextField`在Objective-C中的应用,通过实际的Demo实例帮助开发者更好地理解和掌握其使用方法。在这个名为...

Global site tag (gtag.js) - Google Analytics