自定義鍵盤

DZKeyBoard 是一個繼承與UIView開發(fā)的一個身份證鍵盤,和系統(tǒng)純數(shù)字鍵盤相比多了一個X按鍵,由于有些業(yè)務(wù)需要輸入身份證,所以在這里使用了UIView自定義了一個這樣的鍵盤;

[圖片上傳中。。。(1)]

里面寫的比較簡單,主要是使用for來創(chuàng)建的button來實現(xiàn)這個效果的;在寫的過程中發(fā)現(xiàn)了一個問題是,輸入框里的光標消失掉了,所以這里使用的在輸入框相應(yīng)的時候,調(diào)用系統(tǒng)的鍵盤,之后把系統(tǒng)的鍵盤進行了隱藏,并刷新了鍵盤inputView;自定義的這個View加載到鍵盤inputView上的,這樣子就可以解決光標的問題,使用起來也十分方便;下面是使用的方法:
在.h中描述下DZKeyBoard:
<pre><code>
@property (nonatomic, strong) DZKeyBoard * dz_keyBoard;
</code></pre>
之后的話使用懶加載給他加載,并且要實現(xiàn)代理方法:
<pre><code>
-(DZKeyBoard )dz_keyBoard{
if (!_dz_keyBoard) {
_dz_keyBoard = [[DZKeyBoard alloc]initWithFrame:CGRectMake(0, KHEIGHT-KWIDTH/3/2
4, KWIDTH, KWIDTH/3/2*4) KeyboardType:DZKeyBoardNumber];
_dz_keyBoard.Keydelegate = self;
_dz_keyBoard.hidden = YES;
_dz_keyBoard.backgroundColor = [UIColor clearColor];
}
return _dz_keyBoard;
}
</code></pre>
之后要實現(xiàn)代理方法,這里使用了判斷,主要是我們要判斷刪除按鈕和數(shù)字按鈕的不同的操作
<pre><code>

  • (void)dzBackValueWithButton:(UIButton *)sender{
    [sender setHighlighted:YES];
    if (!(sender.tag == 1011)) {
    _dz_textfield.text = [NSString stringWithFormat:@"%@%@", _dz_textfield.text, sender.titleLabel.text];
    }else{
    if ([_dz_textfield.text length] != 0) {
    [_dz_textfield deleteBackward];
    }else{
    _dz_keyBoard.hidden = YES;
    [_dz_textfield resignFirstResponder];
    }
    }
    [self.dz_textfield reloadInputViews];
    }
    </code></pre>
    這里主要是要做的是在獲取到輸入框相應(yīng)事件后進行的操作,移除系統(tǒng)的鍵盤,并刷新inputView;
    <pre><code>
  • (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    _dz_keyBoard.hidden = NO;
    [_dz_textfield.inputView removeFromSuperview];
    [self.dz_textfield reloadInputViews];
    return YES;
    }
    </code></pre>
    我們需要用到點擊空白處就進行隱藏消失,這里使用系統(tǒng)的方法給他進行操作:
    <pre><code>
    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    _dz_keyBoard.hidden = YES;
    [_dz_textfield resignFirstResponder];
    }
    </code></pre>
    到這里就完成了鍵盤使用和操作了,如果有更好的建議,可以加QQ進行技術(shù)交流:1030554941
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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