一句話設(shè)置UITextField买猖、UITextview的字?jǐn)?shù)限制和placeholder

在開發(fā)中UITextField和UITextview這兩個組件用的是非常頻繁的,而且還要限制輸入框的字?jǐn)?shù)破花,UITextview要設(shè)置placeholder等谦趣,每個控件都要實現(xiàn)代理方法寫相應(yīng)的邏輯代碼。是不是很麻煩座每?

很多新手是這樣寫的:

// 限制字?jǐn)?shù)
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    if ([text isEqualToString:@""]) {
        return YES;
    }
    if (textView.text.length > 5) {
        return NO;
    }
    return YES;
}

這樣寫會有問題前鹅,當(dāng)輸入中文或粘貼字符到文本框時問題就出來了。

為此我重寫了UITextField和UITextview峭梳,實現(xiàn)一句話設(shè)置限制字?jǐn)?shù)和placeholder舰绘。代理用block代替,使用更加方便靈活。

限制字?jǐn)?shù)相關(guān)實現(xiàn)除盏,完美解決剛提到的問題(UITextField和UITextview的實現(xiàn)思路一樣):

if (self.limitLength > 0) { // 限制長度
        //獲取高亮部分
        UITextRange *selectedRange = [textView markedTextRange];
        UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0];
        
        // 沒有高亮選擇的字,則對已輸入的文字進(jìn)行字?jǐn)?shù)統(tǒng)計和限制
        if (!position)
        {
            if (toBeString.length > self.limitLength)
            {
                NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:self.limitLength];
                if (rangeIndex.length == 1)
                {
                    textView.text = [toBeString substringToIndex:self.limitLength];
                }
                else
                {
                    NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, self.limitLength)];
                    textView.text = [toBeString substringWithRange:rangeRange];
                }
            }
        }
    }

效果圖:


效果圖

使用:

JHTextField *textField = [[JHTextField alloc] initWithFrame:CGRectMake(50, 50, 300, 44)];
    textField.limitLength = 5;
    textField.placeholder = @"請輸入~";
    textField.layer.borderWidth = 1;
    textField.layer.borderColor = [UIColor lightGrayColor].CGColor;
    [self.view addSubview:textField];
    
    JHTextView *textView = [[JHTextView alloc] initWithFrame:CGRectMake(50, 120, 300, 200)];
    textView.limitLength = 10;
    textView.placeholder = @"請輸入~";
    textView.layer.borderWidth = 1;
    textView.layer.borderColor = [UIColor lightGrayColor].CGColor;
    [self.view addSubview:textView];
    self.textView = textView;

demo地址:https://github.com/iOSHJH/InputView

另外說到輸入框必然就會想到鍵盤擋住輸入框怎么辦挫以?為此我隆重介紹一個輕量級的鍵盤管理器者蠕,一句話設(shè)置當(dāng)前控制器的view跟隨鍵盤起伏,媽媽再也不用擔(dān)心鍵盤擋住輸入框了掐松,地址:http://www.reibang.com/p/8b5112d2369c

有問題歡迎issues踱侣,若項目對你有用還望不吝給個star讓我動力十足??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市大磺,隨后出現(xiàn)的幾起案子抡句,更是在濱河造成了極大的恐慌,老刑警劉巖杠愧,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件待榔,死亡現(xiàn)場離奇詭異,居然都是意外死亡流济,警方通過查閱死者的電腦和手機锐锣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绳瘟,“玉大人雕憔,你說我怎么就攤上這事√巧” “怎么了斤彼?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蘸泻。 經(jīng)常有香客問我琉苇,道長,這世上最難降的妖魔是什么蟋恬? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任翁潘,我火速辦了婚禮,結(jié)果婚禮上歼争,老公的妹妹穿的比我還像新娘拜马。我一直安慰自己,他們只是感情好沐绒,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布俩莽。 她就那樣靜靜地躺著,像睡著了一般乔遮。 火紅的嫁衣襯著肌膚如雪扮超。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音出刷,去河邊找鬼璧疗。 笑死,一個胖子當(dāng)著我的面吹牛馁龟,可吹牛的內(nèi)容都是我干的崩侠。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼坷檩,長吁一口氣:“原來是場噩夢啊……” “哼却音!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起矢炼,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤系瓢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后句灌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夷陋,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年涯塔,在試婚紗的時候發(fā)現(xiàn)自己被綠了肌稻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡匕荸,死狀恐怖爹谭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情榛搔,我是刑警寧澤诺凡,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站践惑,受9級特大地震影響腹泌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尔觉,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一凉袱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侦铜,春花似錦专甩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贡未,卻和暖如春种樱,著一層夾襖步出監(jiān)牢的瞬間蒙袍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工嫩挤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留害幅,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓岂昭,卻偏偏與公主長得像矫限,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子佩抹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容