美文网首页iOS开发经验
iOS中实现键盘右上角完成按钮

iOS中实现键盘右上角完成按钮

作者: lancely | 来源:发表于2016-05-27 19:28 被阅读2629次

重写UITextField子类的drawRect方法

class UITextFieldX: UITextField {
    override func drawRect(rect: CGRect) {
        super.drawRect(rect)
         
        // 键盘完成按钮
        var toolBar = UIToolbar(frame: CGRectMake(0, 0, screenSize().width, 30))
        toolBar.barStyle = UIBarStyle.Default
         
        var btnFished = UIButton(frame: CGRectMake(0, 0, 50, 25))
        btnFished.setTitleColor(RGB(4, 170, 174), forState: UIControlState.Normal)
        btnFished.setTitleColor(UIColor.grayColor(), forState: UIControlState.Highlighted)
        btnFished.setTitle("完成", forState: UIControlState.Normal)
        btnFished.addTarget(self, action: "finishTapped:", forControlEvents: UIControlEvents.TouchUpInside)
        var item2 = UIBarButtonItem(customView: btnFished)
         
        var space = UIView(frame: CGRectMake(0, 0, screenSize().width - btnFished.frame.width - 30, 25))
        var item = UIBarButtonItem(customView: space)
         
        toolBar.setItems([item,item2], animated: true)
         
        self.inputAccessoryView = toolBar
    }
     
    func finishTapped(sender:UIButton){
        self.resignFirstResponder()
    }
 
}
 
func screenSize() -> CGSize{
    return UIScreen.mainScreen().bounds.size
}
 
func RGB (r:CGFloat, g:CGFloat, b:CGFloat) -> UIColor {
    return UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 1)
}

效果如下

效果图

相关文章

网友评论

  • Micro同学:求问大神 有些web调起ios的虚拟键盘 右边角会有个Done 但是是白色的 。
    这种情况这个Done的颜色或者其他样式应该怎么改啊?
    查到的问题相同的有在https://segmentfault.com/q/1010000004526311
    Micro同学:@lancely 谢谢大神!我去看看!!!
    lancely:@microyulive 查了一下,http://stackoverflow.com/questions/34403215/change-uiwebview-done-button-color

本文标题:iOS中实现键盘右上角完成按钮

本文链接:https://www.haomeiwen.com/subject/thrfdttx.html