首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

重写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)
    }

效果如下
返回列表