最近在做发表回复评论这样的功能,总结了一点小小的知识点,写下来方便以后查找
1,将UITextView 弹起的键盘换行按钮变成发送按钮,这个只要改变一个属性即可
_textView.returnKeyType = UIReturnKeySend;
这个属性是一个枚举类型,可以根据自己的需要去进行设置
typedef NS_ENUM(NSInteger, UIReturnKeyType) {
UIReturnKeyDefault,
UIReturnKeyGo,
UIReturnKeyGoogle,
UIReturnKeyJoin,
UIReturnKeyNext,
UIReturnKeyRoute,
UIReturnKeySearch,
UIReturnKeySend,
UIReturnKeyYahoo,
UIReturnKeyDone,
UIReturnKeyEmergencyCall,
UIReturnKeyContinue NS_ENUM_AVAILABLE_IOS(9_0),
};
2,点击“发送”按钮直接将UITextView里的内容发送出去
在这里有一个坑人的地方,UITextField有代理方法可以实现,但是在UITextView的代理方法中就没有相应的方法,在UITextField中的代理方法如下
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self.view endEditing:YES];
return YES;
}
在UITextView中没有就只要用其他的代理方法进行代替,来实现这一功能
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ([text isEqualToString:@"\n"]) {
[self.view endEditing:YES];
return NO;//这里返回NO,就代表return键值失效,即页面上按下return,不会出现换行,如果为yes,则输入页面会换行
}
return YES;
}
这样就能实现那样的功能。
3,输入的不能是空字符并且当没有输入内容的时候“发送”按钮置灰不可用
_textView.enablesReturnKeyAutomatically = YES;
这样就能实现效果
4,不能输入的都是空格并且只保留中间的空格,不保留前后的空格
不能都是空格的判断
[[self.textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0
去掉前后空格
NSCharacterSet *set = [NSCharacterSet whitespaceCharacterSet];
NSString *str = [textView.text stringByTrimmingCharactersInSet:set]
https://blog.youkuaiyun.com/ChasingDreamsCoder/article/details/53180459 这个里面有更多有关UITextView的东西