iOS UITextfield进一步解析

来源:互联网 发布:网络营销策划书的步骤 编辑:程序博客网 时间:2024/04/29 20:05

光标

1. 设置光标颜色self.textfield.tintColor = [UIColor redColor];2. 设置光标位置第一种方法是:设置 leftView ,使得 leftView 填充左间距的位置CGFloat marginToLeft = 10.f;UIView *leftView            = [[UIView alloc] init];leftView.frame              = CGRectMake(0, 0, marginToLeft, 0);self.textfield.leftView     = leftView;self.textfield.leftViewMode = UITextFieldViewModeAlways;第二种方法是:重写 UITextfield 里面的方法#import "UITextField+CursorPosition.h"CGFloat marginToLeft = 10.f;@implementation UITextField (CursorPosition)// 控制编辑文本的位置- (CGRect)editingRectForBounds:(CGRect)bounds{    return CGRectMake(bounds.origin.x + marginToLeft, bounds.origin.y, bounds.size.width - marginToLeft, bounds.size.height);}// 控制显示文本的位置- (CGRect)textRectForBounds:(CGRect)bounds{    return CGRectMake(bounds.origin.x + marginToLeft, bounds.origin.y, bounds.size.width - marginToLeft, bounds.size.height);}@end

占位符

[self.textfield setValue:[UIColor cyanColor] forKeyPath:@"_placeholderLabel.textColor"];[self.textfield setValue:[UIFont systemFontOfSize:17] forKeyPath:@"_placeholderLabel.font"];

代理

关于 UITextFieldDelegate 的代理方法// 开始编辑之前,判断是否允许开始编辑- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{    return YES;}// 开始编辑,成为第一响应者- (void)textFieldDidBeginEditing:(UITextField *)textField{}// 结束编辑之前,判断是否允许结束编辑- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{    [textField resignFirstResponder];    return YES;}// 结束编辑,失去第一响应者- (void)textFieldDidEndEditing:(UITextField *)textField{}// 替换某些范围的文字- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{    // 此处可以用来限制 textField 的内容长度    return YES;}// 清空按钮被点击之前,判断是否允许清空- (BOOL)textFieldShouldClear:(UITextField *)textField{    return YES;}// 'return'键被点击之前,判断是否允许执行- (BOOL)textFieldShouldReturn:(UITextField *)textField{    return YES;}

通知

UIKIT_EXTERN NSString *const UITextFieldTextDidBeginEditingNotification;UIKIT_EXTERN NSString *const UITextFieldTextDidEndEditingNotification;UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;

参考资料

自定义UITextView
UITextField的总结
iOS中UITextField 使用全面解析

0 0
原创粉丝点击