iOS 如何往状态栏里添加textField

iOS 如何往状态栏里添加textField,第1张

//初始化textfield并设置位置及大小

UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]

//设置边框样式,只有设置了才会显示边框样式

text.borderStyle = UITextBorderStyleRoundedRect

typedef enum {

UITextBorderStyleNone,

UITextBorderStyleLine,

UITextBorderStyleBezel,

UITextBorderStyleRoundedRect

} UITextBorderStyle

//设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉

text.backgroundColor = [UIColor whiteColor]

//设置背景

text.background = [UIImage imageNamed:@"dd.png"]

//设置背景

text.disabledBackground = [UIImage imageNamed:@"cc.png"]

//当输入框没有内容时,水印提示 提示内容为password

text.placeholder = @"password"

//设置输入框内容的字体样式和大小

text.font = [UIFont fontWithName:@"Arial" size:20.0f]

//设置字体颜色

text.textColor = [UIColor redColor]

//输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容

text.clearButtonMode = UITextFieldViewModeAlways

typedef enum {

UITextFieldViewModeNever, 重不出现

UITextFieldViewModeWhileEditing, 编辑时出现

UITextFieldViewModeUnlessEditing, 除了编辑外都出现

UITextFieldViewModeAlways 一直出现

} UITextFieldViewMode

//输入框中一开始就有的文字

text.text = @"一开始就在输入框的文字"

//每输入一个字符就变成点 用语密码输入

text.secureTextEntry = YES

//是否纠错

text.autocorrectionType = UITextAutocorrectionTypeNo

typedef enum {

UITextAutocorrectionTypeDefault, 默认

UITextAutocorrectionTypeNo, 不自动纠错

UITextAutocorrectionTypeYes, 自动纠错

} UITextAutocorrectionType

//再次编辑就清空

text.clearsOnBeginEditing = YES

//内容对齐方式

text.textAlignment = UITextAlignmentLeft

//内容的垂直对齐方式 UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment

text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter

//设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动

textFied.adjustsFontSizeToFitWidth = YES

//设置自动缩小显示的最小字体大小

text.minimumFontSize = 20

//设置键盘的样式

text.keyboardType = UIKeyboardTypeNumberPad

typedef enum {

UIKeyboardTypeDefault, 默认键盘,支持所有字符

UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘

UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符

UIKeyboardTypeURL,URL键盘,支持.com按钮 只支持URL字符

UIKeyboardTypeNumberPad, 数字键盘

UIKeyboardTypePhonePad, 电话键盘

UIKeyboardTypeNamePhonePad, 电话键盘,也支持输入人名

UIKeyboardTypeEmailAddress, 用于输入电子 邮件地址的键盘

UIKeyboardTypeDecimalPad, 数字键盘 有数字和小数点

UIKeyboardTypeTwitter,优化的键盘,方便输入@、#字符

UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,

} UIKeyboardType

//首字母是否大写

text.autocapitalizationType = UITextAutocapitalizationTypeNone

typedef enum {

UITextAutocapitalizationTypeNone, 不自动大写

UITextAutocapitalizationTypeWords, 单词首字母大写

UITextAutocapitalizationTypeSentences, 句子的首字母大写

UITextAutocapitalizationTypeAllCharacters, 所有字母都大写

} UITextAutocapitalizationType

//return键变成什么键

text.returnKeyType =UIReturnKeyDone

typedef enum {

UIReturnKeyDefault, 默认 灰色按钮,标有Return

UIReturnKeyGo, 标有Go的蓝色按钮

UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索

UIReturnKeyJoin,标有Join的蓝色按钮

UIReturnKeyNext,标有Next的蓝色按钮

UIReturnKeyRoute,标有Route的蓝色按钮

UIReturnKeySearch,标有Search的蓝色按钮

UIReturnKeySend,标有Send的蓝色按钮

UIReturnKeyYahoo,标有Yahoo的蓝色按钮

UIReturnKeyYahoo,标有Yahoo的蓝色按钮

UIReturnKeyEmergencyCall, 紧急呼叫按钮

} UIReturnKeyType

//键盘外观

textView.keyboardAppearance=UIKeyboardAppearanceDefault;

typedef enum {

UIKeyboardAppearanceDefault, 默认外观,浅灰色

UIKeyboardAppearanceAlert, 深灰 石墨色

} UIReturnKeyType

//设置代理 用于实现协议

text.delegate = self

//把textfield加到视图中

[self.window addSubview:text]

//最右侧加图片是以下代码 左侧类似

UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]]

text.rightView=image

text.rightViewMode = UITextFieldViewModeAlways

typedef enum {

UITextFieldViewModeNever,

UITextFieldViewModeWhileEditing,

UITextFieldViewModeUnlessEditing,

UITextFieldViewModeAlways

} UITextFieldViewMode

//按return键键盘往下收 becomeFirstResponder

类要采用UITextFieldDelegate协议

text.delegate = self 声明text的代理是我,我会去实现把键盘往下收的方法 这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{

[text resignFirstResponder] //主要是[receiver resignFirstResponder]在哪调用就能把receiver对应的键盘往下收

return YES

}

重写绘制行为

除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。

– textRectForBounds://重写来重置文字区域

– drawTextInRect://改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.

– placeholderRectForBounds://重写来重置占位符区域

– drawPlaceholderInRect://重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.

– borderRectForBounds://重写来重置边缘区域

– editingRectForBounds://重写来重置编辑区域

– clearButtonRectForBounds://重写来重置clearButton位置,改变size可能导致button的图片失真

– leftViewRectForBounds:

– rightViewRectForBounds:

ios 导航栏上可以添加textfield的,具体如下:

1、编写设置textfied代码

-(void)viewDidAppear:(BOOL)animated{

   UITextField *txtField=[[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 30)]

   [txtField setBorderStyle:UITextBorderStyleRoundedRect]

   txtField.text=@"Hello"

   [self.navigationController.navigationBar addSubview:txtField]

}

2、在导航栏显示效果如下:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11533981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存