最近在做發表回覆評論這樣的功能,總結了一點小小的知識點,寫下來方便以後查找
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.csdn.net/ChasingDreamsCoder/article/details/53180459 這個裏面有更多有關UITextView的東西