textView 鍵盤變發送,置灰髮送,小細節優化

最近在做發表回覆評論這樣的功能,總結了一點小小的知識點,寫下來方便以後查找

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的東西

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章