iOS开发小记:带输入框(TextField)的UIAlertView
2014-06-26 14:37
162 查看
光写这篇文章的标题我就至少三次把Ctrl键按错成Alt(或Win)键,因为刚从Mac下来,恼火。。。
昨天写项目的时候有个地方需要用到UIAlertView(警告)上有一个输入框(UITextField),第一反应就是去Code4App上翻,还好翻到两个用得上的Demo,但是下下来很多错误,包括没有ARC什么的,一大堆警告。
于是就想着自己简单定制一个AlertView上添加UITextField,由于项目很简单,就没做很复杂,直接在alertView上addSubview个输入框,然后点击按钮的时候再获取出来这个输入框的值就ok了。是不是很简单呢?
下面是最初的想法,实现的代码:
//自己定义一个UITextField添加上去,后来发现ios5自带了此功能 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"类别修改" message:@" " delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"修改",nil]; UITextField * txt = [[UITextField alloc] init]; txt.backgroundColor = [UIColor whiteColor]; txt.frame = CGRectMake(alert.center.x+65,alert.center.y+48, 150,23); [alert addSubview:txt]; [alert show];
这张图就是上述代码的效果,可以看到这个输入框不是很美观,棱角很明显,没圆角,没阴影,控制也不是很方便。
这样其实是一个很笨的方法,没有封装起来一个独立的AlertView,只想投简单搞定一个类似这样功能的东西,不过还是有用的,记录下来以后方便改造。
后来发现经高人指点,ios5已经自带了上述功能,甚至更丰富,那就是Alert的alertViewStyle属性。
alertViewStyle属性有以下三种选项:
UIAlertViewStylePlainTextInput | 添加一个普通输入框 |
UIAlertViewStyleSecureTextInput | 密码输入框 |
UIAlertViewStyleLoginAndPasswordInput | 普通输入框加密码输入框 |
(UIAlertViewStylePlainTextInput)
(UIAlertViewStyleSecureTextInput)
(UIAlertViewStyleLoginAndPasswordInput)
可以看到自带的文本+密码输入框弹出的键盘有点点不一样,稍带透明。
初始化AlertView后,通过设置这个属性,达到AlertView上出现输入框的效果,然后再添加UIAlertViewDelegate代理,在下面棉纺就可以获取到这个文本框。
-(void)alertView : (UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { //得到输入框 UITextField *tf=[alertView textFieldAtIndex:0]; }
是不是很简单呢,看来Xcode是越来越让开发者省心,这也是它不断更新带来的好处,这个只是最基本的实现方法,如果想达到一些额外的效果或者想要的功能,比如在Alert上添加一个UIImageView什么的,那就要自己动手丰衣足食了。。。
isaced2012-12-19iOS
社交帐号登录:
微博
人人
豆瓣
更多»
发布
最新最早最热
10条评论
1条腾讯微博
xuen
用Alert的alertViewStyle属性,这样键盘类型不能换啊
2013年4月2日回复顶转发
isaced
我尝试用[alert subviews]来获取,但我想这不是一个最好的方法,我再看看。
2013年4月2日回复顶转发
isaced http://stackoverflow.com/questions/15760699/change-the-textfield-the-keyboard-type-in-uialertview 2013年4月2日回复顶转发
isaced
原来是这样:[[alert textFieldAtIndex:0] setKeyboardType:UIKeyboardTypeNumberPad];
2013年4月2日回复顶转发
xuen
谢了 行了 不过键盘是透明的啊 能改这个透明度吗?
2013年4月10日回复顶转发
isaced
键盘是透明的?
2013年4月10日回复顶转发
xuen
半透明的
2013年4月18日回复顶转发
isaced
回复 xuen: 可以尝试更改Alpha
2013年4月19日回复顶转发
带你走遍海角天涯
ios开发精髓
2012年12月19日回复顶转发
isaced
呵呵,希望记录下来越来越多!
2012年12月19日回复顶转发举报
相关文章推荐
- iOS开发小记:带输入框(TextField)的UIAlertView
- iOS开发 键盘遮挡输入框(TextView、TextField)问题
- iOS7实现带文本输入框的UIAlertView及获取TextField文本内容
- [ios]TableView的Cell中有Textfield时放置键盘遮挡输入框
- iOS开发小技巧--textField成为密码框,view加载完后textField获取焦点
- iOS开发小记:带输入框(TextField)的UIAlertView
- iOS开发使用textView代替textField时,textView的placeholder问题
- iOS7实现带文本输入框的UIAlertView及获取TextField文本内容
- IOS开发:对TextField或TextView添加文字限制
- 【实用】iOS开发iOS9中使用UIAlertView,弹窗消失时出现键盘闪现,导致输入框出现在屏幕中。
- iOS TextField 弹出键盘时实现view整体上移下移:防止弹出键盘遮挡输入框
- iOS开发tableView的cell里面有textField,键盘出现的时候,自动上移
- [新旧版本]iOS开发小记:带输入框(TextField)的UIAlertView
- UIAlertViewController+TextField 输入框
- IOS textField、textView输入框的自适应
- iOS 开发之带输入框的UIAlertView
- ios开发-确定/自适应textView的高度
- Objective-C ,ios,iphone开发基础:UIAlertView使用详解
- iOS开发之如何在UIAlertView上添加进度条
- UItableView中含输入框(TextField)被键盘遮挡问题