iOS开发篇——UITextField
来源:互联网 发布:淘宝网智能手机 编辑:程序博客网 时间:2024/06/15 22:46
官方UITextField
@interface UITextField : UIControl <UITextInput, NSCoding> @property(nonatomic,copy) NSString *text; // 文本 default is nil@property(nonatomic,copy) NSAttributedString *attributedText NS_AVAILABLE_IOS(6_0); // default is nil@property(nonatomic,retain) UIColor *textColor; // 文本颜色 default is nil. use opaque black@property(nonatomic,retain) UIFont *font; // 文本字体 default is nil. use system font 12 pt@property(nonatomic) NSTextAlignment textAlignment; // 文本的排版 default is NSLeftTextAlignment@property(nonatomic) UITextBorderStyle borderStyle; // 边框的样式 default is UITextBorderStyleNone. If set to UITextBorderStyleRoundedRect, custom background images are ignored.@property(nonatomic,copy) NSDictionary *defaultTextAttributes NS_AVAILABLE_IOS(7_0); //文本属性 用字典填充 applies attributes to the full range of text. Unset attributes act like default values.@property(nonatomic,copy) NSString *placeholder; // 文本填充 default is nil. string is drawn 70% gray@property(nonatomic,copy) NSAttributedString *attributedPlaceholder NS_AVAILABLE_IOS(6_0); // default is nil@property(nonatomic) BOOL clearsOnBeginEditing; // 开始编辑的时候清空 default is NO which moves cursor to location clicked. if YES, all text cleared@property(nonatomic) BOOL adjustsFontSizeToFitWidth; //自适应文本到宽度 default is NO. if YES, text will shrink to minFontSize along baseline@property(nonatomic) CGFloat minimumFontSize; //最小的文本大小 default is 0.0. actual min may be pinned to something readable. used if adjustsFontSizeToFitWidth is YES@property(nonatomic,assign) id<UITextFieldDelegate> delegate; // 协议 default is nil. weak reference@property(nonatomic,retain) UIImage *background; // 背景 default is nil. draw in border rect. image should be stretchable@property(nonatomic,retain) UIImage *disabledBackground; // 禁用的背景 default is nil. ignored if background not set. image should be stretchable@property(nonatomic,readonly,getter=isEditing) BOOL editing; //是否被编辑@property(nonatomic) BOOL allowsEditingTextAttributes NS_AVAILABLE_IOS(6_0); // default is NO. allows editing text attributes with style operations and pasting rich text@property(nonatomic,copy) NSDictionary *typingAttributes NS_AVAILABLE_IOS(6_0); // automatically resets when the selection changes// You can supply custom views which are displayed at the left or right// sides of the text field. Uses for such views could be to show an icon or// a button to operate on the text in the field in an application-defined// manner.// // A very common use is to display a clear button on the right side of the// text field, and a standard clear button is provided. Note: if the clear// button overlaps one of the other views, the clear button will be given// precedence.@property(nonatomic) UITextFieldViewMode clearButtonMode; // sets when the clear button shows up. default is UITextFieldViewModeNever@property(nonatomic,retain) UIView *leftView; // e.g. magnifying glass@property(nonatomic) UITextFieldViewMode leftViewMode; // sets when the left view shows up. default is UITextFieldViewModeNever@property(nonatomic,retain) UIView *rightView; // e.g. bookmarks button@property(nonatomic) UITextFieldViewMode rightViewMode; // sets when the right view shows up. default is UITextFieldViewModeNever// drawing and positioning overrides- (CGRect)borderRectForBounds:(CGRect)bounds;- (CGRect)textRectForBounds:(CGRect)bounds;- (CGRect)placeholderRectForBounds:(CGRect)bounds;- (CGRect)editingRectForBounds:(CGRect)bounds;- (CGRect)clearButtonRectForBounds:(CGRect)bounds;- (CGRect)leftViewRectForBounds:(CGRect)bounds;- (CGRect)rightViewRectForBounds:(CGRect)bounds;- (void)drawTextInRect:(CGRect)rect;- (void)drawPlaceholderInRect:(CGRect)rect;// Presented when object becomes first responder. If set to nil, reverts to following responder chain. If// set while first responder, will not take effect until reloadInputViews is called.@property (readwrite, retain) UIView *inputView; //键盘的view@property (readwrite, retain) UIView *inputAccessoryView; //想在键盘上展示一个自定义的view时,你就可以设置该属性@property(nonatomic) BOOL clearsOnInsertion NS_AVAILABLE_IOS(6_0); // defaults to NO. if YES, the selection UI is hidden, and inserting text will replace the contents of the field. changing the selection will automatically set this to NO.@end基本使用:
- UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 100, 200, 50)];
- textField.tag = 10;
- textField.borderStyle = UITextBorderStyleRoundedRect;//
- #pragma mark - 关于文本的设置
- -(void)textSetting
- {
- //找到文本输入框
- UITextField *textField = (id)[self.view viewWithTag:10];
- //设置文字
- // textField.text = @"我是文本框";
- //设置文字颜色
- textField.textColor = [UIColor redColor];
- //设置文字字体
- textField.font = [UIFont boldSystemFontOfSize:25];
- //设置文字对齐方式,默认居左
- textField.textAlignment = NSTextAlignmentRight;
- /**
- NSTextAlignmentLeft
- NSTextAlignmentRight
- NSTextAlignmentCenter
- */
- //设置文字自适应宽度
- textField.adjustsFontSizeToFitWidth = YES;
- //设置允许的最小字体,在adjustsFontSizeToFitWidth = YES,才有效
- textField.minimumFontSize = 17;
- //设置提示文字
- textField.placeholder = @"请输入用户名";
- //设置是否使用密文输入
- // textField.secureTextEntry = YES;
- //设置开始编辑时,清除已有的文字
- textField.clearsOnBeginEditing = YES;
- }
- #pragma mark - 关于样式的设置
- -(void)styleSetting
- {
- //找到已经创建好的UITextField
- UITextField *textField = (UITextField *)[self.view viewWithTag:10];
- //设置背景颜色
- // textField.backgroundColor = [UIColor cyanColor];
- //设置边框样式
- textField.borderStyle = UITextBorderStyleNone;
- /**
- UITextBorderStyleNone
- 无边框
- UITextBorderStyleLine
- 线性矩形
- UITextBorderStyleBezel
- 尖角矩形
- UITextBorderStyleRoundedRect
- 圆角矩形
- */
- //通过layer设置圆角
- textField.layer.cornerRadius = 10;
- textField.layer.borderColor = [UIColor lightGrayColor].CGColor;
- textField.layer.borderWidth = 1;
- //设置是否显示清除按钮
- textField.clearButtonMode = UITextFieldViewModeUnlessEditing;
- //显示清除按钮的前提都是要有文字
- /**
- UITextFieldViewModeNever,
- //从不显示
- UITextFieldViewModeWhileEditing,
- //编辑时显示
- UITextFieldViewModeUnlessEditing,
- //非编辑时显示
- UITextFieldViewModeAlways
- //一直显示
- */
- //成为第一响应者
- //第一响应者,一个界面可能有多个可输入的控件,哪一个正在编辑哪一个就是第一响应者
- [textField becomeFirstResponder];
- //设置背景图片
- textField.background = [UIImage imageNamed:@"1.png"];
- //设置不可编辑时的背景图
- textField.disabledBackground = [UIImage imageNamed:@"5.png"];
- //设置是否可以编辑,YES 可以编辑,NO不可以
- // textField.enabled = NO;
- UIView *leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
- leftView.backgroundColor = [UIColor magentaColor];
- //设置左视图,所有直接或间接继承于UIView的类的对象,都可以作为左视图
- textField.leftView = leftView;
- //设置左视图的显示模式
- textField.leftViewMode = UITextFieldViewModeAlways;
- UIView *rightView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
- rightView.backgroundColor = [UIColor yellowColor];
- //设置右视图
- textField.rightView = rightView;
- //设置右视图的显示模式
- textField.rightViewMode = UITextFieldViewModeAlways;
- }
自定制输入键盘
创建一个协议:
- @protocol KeyBoardViewDelegate <NSObject>
- -(void)inputText:(NSString *)text;
- @end
创建View
- @interface KeyBoardView : UIView
- @property(nonatomic, assign) id <KeyBoardViewDelegate> delegate;
- @end
- @implementation KeyBoardView
- -(instancetype)init
- {
- self = [super init];
- if (self) {
- CGSize size = [UIScreen mainScreen].bounds.size;
- self.frame = CGRectMake(0, 0, size.width, 258);
- [self createButtons];
- }
- return self;
- }
- -(void)createButtons
- {
- NSArray *array = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0",@"+",@"-"];
- int i = 0;
- for (NSString *title in array)
- {
- //遍历标题,创建按钮
- UIButton *button = [[UIButton alloc]init];
- button.backgroundColor = [UIColor lightGrayColor];
- button.frame = CGRectMake(10 + (i % 3) * 90, 10 + (i / 3) * 50, 85, 45);
- [button setTitle:title forState:UIControlStateNormal];
- [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
- button.titleLabel.font = [UIFont boldSystemFontOfSize:30];
- [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
- [self addSubview:button];
- i++;
- }
- }
- -(void)buttonClicked:(UIButton *)sender
- {
- //代理存在,且能响应inputText:这个方法
- if(_delegate && [_delegate respondsToSelector:@selector(inputText:)])
- {
- [_delegate inputText:sender.titleLabel.text];
- }
- }
- @end
0 0
- iOS开发篇——UITextField
- iOS开发篇——UITextField
- iOS开发之UI篇(8)—— UITextField
- iOS——UITextField
- iOS—UITextField详解
- iOS系列UI篇——UITextField
- IOS开发之——UITextField限制字数
- ios开发——UITextField中设置placeholder字体颜色
- iOS开发问题——UITextField弹出PickerView方法
- IOS开发之——UITextField限制字数
- iOS开发之基础视图——UITextField
- UITextField-IOS开发
- UITextField-IOS开发
- iOS开发-UITextField
- IOS开发之UITextField
- IOS开发之UITextField
- iOS开发 -- UITextField
- iOS开发之 UITextField
- cf#341-C. Wet Shark and Flowers-数学-概率计算
- 自定义View笔记一
- [android]_[Async异步任务使用]
- 重建二叉树
- iOS UIProgressView控件用法
- iOS开发篇——UITextField
- 哈希表字符串匹配
- UISlider用法总结
- Codeforces 621A Wet Shark and Odd and Even
- 刚试了一下,浏览器里可以玩 Windows 95
- 重设(Resize)Bitmap大小以及获取到圆形头像(Rounded Avatar)的方法
- A*启发式搜索算法详解 人工智能
- 补充:函数间只能用this
- [android]_[ImageView点击变暗]