如何让uitextfield显示删除 或者uitextview 显示表情

iOS中UITextView遇到的问题总结
iOS中UITextView遇到的问题总结
由于iOS中的UITextField不支持文本换行,所以在有换行需求时,我们只好用UITextView。
以下是在使用UITextView时很容易遇到的一些问题。
问题一:UITextView显示边框
UITextView默认是没有边框颜色的,没有直接的属性来设置边框颜色。
可以使用layer属性来解决,代码如下:
[objc] //设置边框宽度&&self.textView.layer.borderWidth&=&1.0;&&//设置边框颜色&&self.textView.layer.borderColor&=&[UIColor&grayColor].CGC&&//设置圆角&&self.textView.layer.cornerRadius&=&5.0;&&
问题二:UITextView居中了,怎么居上?
实际上,UITextView的文本默认就是居上显示的,出现上面的情况很多都是因为在iOS7下使用了navigationController让scrollView自动适应屏幕造成的。(UITextView继承自UIScrollView)。
所以解决方案如以下代码:
[objc] if&([self&respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)])&{&&&&&&self.automaticallyAdjustsScrollViewInsets&=&NO;&&}&&
问题三:UITextView添加placeholder灰色提示文字
UITextView没有UITextField的placeholder属性来提示输入框信息,也没有其他属性或接口来设置。
有人在UITextView上覆盖个UILabel来显示placeholder信息,也是一种解决思路。
但是从写程序的角度来说,用继承UITextView来解决问题似乎更加合理些。
新建UIPlaceholderTextView类继承自UITextView。
代码如下:
UIPlaceholderTextView.h文件
[objc] @interface&UIPlaceholderTextView&:&UITextView&&&&@property(nonatomic,&strong)&NSString&*&&//灰色提示文字&&&&@end&&
UIPlaceholderTextView.m文件
[objc] #import&"UIPlaceholderTextView.h"&&&&@implementation&UIPlaceholderTextView&&&&-&(id)initWithFrame:(CGRect)frame&{&&&&&&if&((self&=&[super&initWithFrame:frame]))&{&&&&&&&&&&[self&awakeFromNib];&&&&&&}&&&&&&return&&&}&&&&&&-&(void)awakeFromNib&{&&&&&&[self&addObserver];&&}&&&&#pragma&mark&注册通知&&-&(void)addObserver&{&&&&&&[[NSNotificationCenter&defaultCenter]&addObserver:self&selector:@selector(textDidBeginEditing:)&name:UITextViewTextDidBeginEditingNotification&object:self];&&&&&&[[NSNotificationCenter&defaultCenter]&addObserver:self&selector:@selector(textDidEndEditing:)&name:UITextViewTextDidEndEditingNotification&object:self];&&}&&&&#pragma&mark&移除通知&&-&(void)dealloc&{&&&&&&[[NSNotificationCenter&defaultCenter]&removeObserver:self];&&}&&&&#pragma&mark&开始编辑&&-&(void)textDidBeginEditing:(NSNotification&*)notification&{&&&&&&if&([super.text&isEqualToString:_placeholder])&{&&&&&&&&&&super.text&=&@"";&&&&&&&&&&[super&setTextColor:[UIColor&blackColor]];&&&&&&}&&}&&&&#pragma&mark&结束编辑&&-&(void)textDidEndEditing:(NSNotification&*)notification&{&&&&&&if&(super.text.length&==&0)&{&&&&&&&&&&super.text&=&_&&&&&&&&&&&//如果文本框内是原本的提示文字,则显示灰色字体&&&&&&&&&&[super&setTextColor:[UIColor&lightGrayColor]];&&&&&&}&&}&&&&#pragma&mark&重写setPlaceholder方法&&-&(void)setPlaceholder:(NSString&*)aPlaceholder&{&&&&&&_placeholder&=&aP&&&&&&[self&textDidEndEditing:nil];&&}&&&&#pragma&mark&重写getText方法&&-&(NSString&*)text&{&&&&&&NSString&*text&=&[super&text];&&&&&&if&([text&isEqualToString:_placeholder])&{&&&&&&&&&&return&@"";&&&&&&}&&&&&&return&&&}&&&&&&@end&&
在使用UIPlaceholderTextView的控制器的viewDidLoad方法里添加如下代码
[objc] self.placeHolderTextView.placeholder=@"这一刻你想说什么......";&&
效果如下:
发表评论:
TA的最新馆藏[转]&[转]&[转]&ios中实现对UItextField,UITextView等输入框的字数限制
16:48 533人阅读 评论(0)
&&&&如何实现对UITextField
,UITextView等输入框的 字数限制
&&&&&&&(1)首先,肯定要
让controller
实现&UITextFieldDelegate&(针对UITextField)或者&&UITextViewDelegate(针对UITextView)
&&&&&&&&&&&&&然后,将
输入框的delegate属性设置为self. &
然后,我们就可以用这两个delegate的函数来实现 我们对输入字数的限制了。
&&&&&&&&&&&对于
UITextField 是函数
(BOOL)textField:(UITextField&*)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString&*)
&&&&&&或者
&&&&&&&&&&&对于UITextView
(BOOL)textView:(UITextView&*)textView
shouldChangeTextInRange:(NSRange)range
replacementText:(NSString&*)
&&&&&&如果允许继续输入,那么返回YES,否则返回NO。
&&&&&代码如下:
//如果输入超过规定的字数100,就不再让输入&&
-&(BOOL)textView:(UITextView&*)textView&shouldChangeTextInRange:(NSRange)range&replacementText:(NSString&*)text&&
&&&&if&(range.location&=100)&&&
&&&&&&&&return&&NO;&&
&&&&else&&&
&&&&&&&&return&YES;&&
2. &如何实现 对有输入限制的输入框的剩余字数的自动计算
&&&&&比如上面的代码中,输入框的字数不能超过100,如何实时的计算出当前可以输入多少个字符呢?
&&&UITextField
没有找到合适的函数,也可以在函数
(BOOL)textField:(UITextField&*)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString&*)
中来实现。
-&(BOOL)textField:(UITextField&*)textField&shouldChangeCharactersInRange:(NSRange)range&replacementString:(NSString&*)string&&
&&&int&&remainTextNum_=100;&&
&&&//计算剩下多少文字可以输入&&
&&&if(range.location&=100)&&
&&&&&&remainTextNum_=0;&&
&&&&&&return&NO;&&
&&&&NSString&&*&nsTextContent=string.&&
&&&&int&&&existTextNum=[nsTextContent&length];&&
&&&&remainTextNum_=100-existTextN&&
&&&&&&&&return&YES;&&
&&&&UITextView
除了可以在函数
(BOOL)textView:(UITextView&*)textView
shouldChangeTextInRange:(NSRange)range
replacementText:(NSString&*)text
&&&&中按照上面类似的办法处理以外,还可以在函数
(void)textViewDidChange:(UITextView&*)textView
&&&&代码如下:
//在这个地方计算输入的字数&&
-&(void)textViewDidChange:(UITextView&*)textView&&
&&&&NSString&&*&nsTextContent=textView.&&
&&&&int&&&existTextNum=[nsTextContent&length];&&
&&&&remainTextNum_=100-existTextN&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 uitextview 去掉表情 的文章

 

随机推荐