按下另一个键时如何模拟按键?

时间:2017-12-10 20:12:22

标签: ios swift uitextfield

我正在尝试使用删除键来执行空格键通常执行的操作。换句话说,当用户在UITextField中单击删除时,我想要显示一个空格。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let  char = string.cString(using: String.Encoding.utf8)!
    let isBackSpace = strcmp(char, "\\b")
    if (isBackSpace == -92) {
        print("Delete was pressed")
        return false
    }

    return true
 }

我知道这只会禁用删除键,但我该如何继续前进?此外,该空格将替换所选文本(总是会选择一些文本)。

1 个答案:

答案 0 :(得分:0)

textField参数是用户正在使用的文本字段。无论你喜欢什么,你都可以自由地去那里。因此,除了返回false之外,在此之前,请将text的{​​{1}}更改为您想要的任何内容。

如果您要执行的操作是在文本中添加空格,则可以轻松获取textField,在该字符串后附加空格,然后设置textField.text!。或者,如果您想用空格替换当前选择,而不是让它被删除,请使用textField.text参数textField.text执行此操作,告诉您空间应该去哪里。

换句话说,如果您对如何使用字符串一无所知,那么您可以将此作为此方法的一部分用于range字符串。

还有其他使用UITextInput协议的方法,它允许你假装是键盘。例如,只是说textField.text可能会给你想要的结果,但你必须尝试并查看。