尝试将文本输入设置为每个键中的标签标题后,自定义键盘崩溃

西里尔

我在学习Swift的同时尝试制作自定义键盘。在我的键盘上,每个键都是一个单独的UIView,其中包含UILabel。每个UILabel的标签均为1。起初,我手动编码了每个键的输入,但是我决定优化代码并设置一个函数,该函数将UILabel的文本设置为输入,但由于某种原因键盘崩溃了(没有日志)

注意1:显示了一个按键以简化操作。
注意2:该手势在其他位置定义,不会导致崩溃

这是我的代码:

override func viewDidLoad() {
        super.viewDidLoad()
var Qkey = UIView(frame: CGRectMake(3, 11, 26, 38))
        var Q = UILabel(frame: CGRectMake(5, 8, 17, 27))
        Q.tag = 1
        Q.text = "Q"
        Qkey.addSubview(Q)
        tapRec1.addTarget(self, action: "keyPressed:")
        Qkey.addGestureRecognizer(tapRec1)
        self.view.addSubview(Qkey)
}

func keyPressed(sender: UIView){
    let theLabel : UILabel! = sender.viewWithTag(1) as UILabel;
    var string = theLabel.text!

    (textDocumentProxy as UIKeyInput).insertText("\(theLabel)")
}

在日志中观察到错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITapGestureRecognizer viewWithTag:]: unrecognized selector sent to instance 0x798bba30'

本质上,我想做的是针对调用了该函数的UIView(发送者),获取带有标签1的所有子视图(UILabel),并将其文本设置为键盘输入。即使在按键崩溃时也可以这样做:(非常感谢您的帮助。谢谢!

西里尔

终于明白了。这是工作代码:

func keyPressed(sender: UITapGestureRecognizer){
    for subview in sender.view!.subviews as [UIView]  {

        if subview.tag == 1
        {
            let label = subview as UILabel
            if capsLockOn {
            (textDocumentProxy as UIKeyInput).insertText("\(label.text!.uppercaseString)")
            } else {
            (textDocumentProxy as UIKeyInput).insertText("\(label.text!.lowercaseString)")
            }

        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS自定义UITableViewCell设置UIButton标题标签文本

来自分类Dev

PDO:为FETCH_ASSOCC结果中的每个项目设置自定义键

来自分类Dev

如何将“自定义键盘”设置为UITextView的默认键盘?

来自分类Dev

添加UICollectionView后,iOS 9中的“自定义键盘”崩溃

来自分类Dev

删除标题后,自定义对话框崩溃

来自分类Dev

如何在Excel Mac 2011中将快捷方式设置为“自定义键盘...”

来自分类Dev

在自定义标题栏上设置标题文本

来自分类Dev

如何从终端设置自定义键盘快捷键?

来自分类Dev

如何制作删除键-在自定义Android键盘中删除所有选定的编辑文本

来自分类Dev

如何在自定义键盘中更改键文本的颜色?

来自分类Dev

如何制作删除键-在自定义Android键盘中删除所有选定的编辑文本

来自分类Dev

在Ubuntu 14.04 LTS中设置自定义键盘快捷键以卸载/分离外部HD?

来自分类Dev

UITableView 插入行后,更新自定义标题的标签

来自分类Dev

在Android的标签标题中自定义文本

来自分类Dev

将字符串传递给自定义类时,无法在UICollectionViewCell中设置标签文本

来自分类Dev

在标签标题上设置Android自定义字体

来自分类Dev

检查输入文字在iOS 8的自定义键盘中是否为空

来自分类Dev

是否可以将 PRE_SET_DATA 事件中的自定义数据属性设置为表单标签本身?

来自分类Dev

自定义html标签u,将其设置为比文本宽

来自分类Dev

Android-自定义后,标题文本未显示在操作栏中

来自分类Dev

当我尝试通过自定义样式设置文本大小属性时,为什么应用程序崩溃

来自分类Dev

为文本框标题应用自定义模板

来自分类Dev

为文本框标题应用自定义模板

来自分类Dev

gedit中的自定义键盘快捷键

来自分类Dev

为所有齐射请求设置自定义标题

来自分类Dev

为对象更改通知设置自定义标题

来自分类Dev

如何在“自定义键盘”中输入自定义字体作为输入

来自分类Dev

在MiddleMan中为日历页面定义自定义标题

来自分类Dev

替换自定义键盘中的预想文本来源

Related 相关文章

  1. 1

    iOS自定义UITableViewCell设置UIButton标题标签文本

  2. 2

    PDO:为FETCH_ASSOCC结果中的每个项目设置自定义键

  3. 3

    如何将“自定义键盘”设置为UITextView的默认键盘?

  4. 4

    添加UICollectionView后,iOS 9中的“自定义键盘”崩溃

  5. 5

    删除标题后,自定义对话框崩溃

  6. 6

    如何在Excel Mac 2011中将快捷方式设置为“自定义键盘...”

  7. 7

    在自定义标题栏上设置标题文本

  8. 8

    如何从终端设置自定义键盘快捷键?

  9. 9

    如何制作删除键-在自定义Android键盘中删除所有选定的编辑文本

  10. 10

    如何在自定义键盘中更改键文本的颜色?

  11. 11

    如何制作删除键-在自定义Android键盘中删除所有选定的编辑文本

  12. 12

    在Ubuntu 14.04 LTS中设置自定义键盘快捷键以卸载/分离外部HD?

  13. 13

    UITableView 插入行后,更新自定义标题的标签

  14. 14

    在Android的标签标题中自定义文本

  15. 15

    将字符串传递给自定义类时,无法在UICollectionViewCell中设置标签文本

  16. 16

    在标签标题上设置Android自定义字体

  17. 17

    检查输入文字在iOS 8的自定义键盘中是否为空

  18. 18

    是否可以将 PRE_SET_DATA 事件中的自定义数据属性设置为表单标签本身?

  19. 19

    自定义html标签u,将其设置为比文本宽

  20. 20

    Android-自定义后,标题文本未显示在操作栏中

  21. 21

    当我尝试通过自定义样式设置文本大小属性时,为什么应用程序崩溃

  22. 22

    为文本框标题应用自定义模板

  23. 23

    为文本框标题应用自定义模板

  24. 24

    gedit中的自定义键盘快捷键

  25. 25

    为所有齐射请求设置自定义标题

  26. 26

    为对象更改通知设置自定义标题

  27. 27

    如何在“自定义键盘”中输入自定义字体作为输入

  28. 28

    在MiddleMan中为日历页面定义自定义标题

  29. 29

    替换自定义键盘中的预想文本来源

热门标签

归档