热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

想要通过@IBInspectable实现键盘选择

如何解决《想要通过@IBInspectable实现键盘选择》经验,为你挑选了1个好方法。

我想从@IBInspectabale创建键盘选择

如何做到这一点

我正在创建一个视图,在其中插入ImageView和TextField,现在,我将该自定义视图类创建为@IBDesignable并创建了@IBInspectable元素。

我成功创建了侧面图像和占位符元素,但是现在我尝试创建键盘类型,但遇到了问题。

代码片段:`import UIKit

@IBDesignable类CustomTextField:UIView,UITextFieldDelegate {

//custom view from the XIB file
var view: UIView!

@IBOutlet weak var textField: UITextField!
@IBOutlet weak var imageView: UIImageView!

override init(frame: CGRect) {
    super.init(frame: frame)
    loadViewFromNib ()
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    loadViewFromNib ()
}

func loadViewFromNib() {
    let bundle = Bundle(for: type(of: self))
    let nib = UINib(nibName: "CustomTextField", bundle: bundle)
    let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
    view.frame = bounds
    view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    self.addSubview(view);



}

@IBInspectable var sideImage: UIImage? {
    get {
        return imageView.image
    }
    set(sideImage) {
        imageView.image = sideImage
    }
}

@IBInspectable var placeHolderText: String? {
    get {
        return textField.placeholder
    }
    set(placeHolderText) {
        textField.placeholder = placeHolderText
    }
}'

以上所有工作正常,但以下内容对我不起作用:

@IBInspectable var keyboard: UIKeyboardType? {
    get{
        return UIKeyboardType(rawValue: textField.keyboardType.rawValue)
    }
    set(keyboard){
        textField.keyboardType = keyboard!
    }
}

}

我通过创建枚举尝试了此操作,但对我没有任何效果。



1> nabu..:

首先感谢大家。我的问题得到解决,而无需进行额外的创建枚举和所有工作。我使用了苹果预定义的UIKeyboardType枚举。只需编写以下代码:

@IBInspectable var keyboard:Int{
    get{
        return self.textField.keyboardType.rawValue
    }
    set(keyboardIndex){
        self.textField.keyboardType = UIKeyboardType.init(rawValue: keyboardIndex)!

    }
}

它将在“界面”构建器中显示“键盘”,您可以为键盘类型设置0,1,2 ...值。其中0,1,2表示如下:

0: default // Default type for the current input method.

1: asciiCapable // Displays a keyboard which can enter ASCII characters

2: numbersAndPunctuation // Numbers and assorted punctuation.

3: URL // A type optimized for URL entry (shows . / .com prominently).

4: numberPad // A number pad with locale-appropriate digits (0-9, ?-?, ?-?, etc.). Suitable for PIN entry.

5: phonePad // A phone pad (1-9, *, 0, #, with letters under the numbers).

6: namePhonePad // A type optimized for entering a person's name or phone number.

7: emailAddress // A type optimized for multiple email address entry (shows space @ . prominently).

8: decimalPad // A number pad with a decimal point.

9: twitter // A type optimized for twitter text entry (easy access to @ #)


推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
author-avatar
过期物品请勿购_613
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有