关于快速删除字符串

Posted

技术标签:

【中文标题】关于快速删除字符串【英文标题】:Regarding delete a string in swift 【发布时间】:2019-12-13 09:15:53 【问题描述】:

我不确定为什么,但无论我尝试什么,即使我检查它并看到与要删除的字符相同数量的删除字符,这似乎也不会删除文本字段中的整个文本。它似乎是随机的,每次迭代删除不同数量的字符。


extension XCUIElement 

    /**
     Removes any current text in the field before typing in the new value
     - Parameter text: the text to enter into the field
     */

    func clearAndEnterText(text: String) 
        guard let stringValue = self.value as? String else 
            XCTFail("Tried to clear and enter text into a non string value")
            return
        


        let deleteString = String(repeating: XCUIKeyboardKey.delete.rawValue, count: stringValue.count)

        self.typeText(deleteString)
        self.typeText(text)
    

【问题讨论】:

您可以轻松做到。 self.typeText.text = "" @Putte 谢谢。但是,它不起作用。它将“”附加到文本字段中的现有字符串。 那么,您为什么要使用 XCUIElement?你从中得到什么?我刚刚意识到 typeText() 是一个内置属性,对吧? 我从链接***.com/questions/32821880/…得到这个代码 有时会按预期删除所有字符,但有时会留下 2 或 3 个字符未删除。 【参考方案1】:
/*!  * Sends a tap event to a central point computed for the element. 
*/

- (void)tap;

/*!  * Sends a double tap event to a central point computed for the element.  */
- (void)doubleTap;

因此,如果您发送 tap 但文本比控制中心点长,您将只删除点击点的左侧部分。

Try to use instead doubleTap, which as expected must select all text (exception, when selection will be disabled by some reason).

【讨论】:

对不起!我现在已经编辑了代码部分。我根本没有使用 tap() 功能。我的项目是针对 appleTv 的,它没有点击功能。如果没有点击本身,我有时可以清除完整的文本。注意:我一直在传递相同的文本进行搜索

以上是关于关于快速删除字符串的主要内容,如果未能解决你的问题,请参考以下文章

从字符串中删除小写子字符串的快速方法?

快速从字符串中删除所有非数字字符

关于 getline(cin, string) 的 C++ 快速问题

Docker 快速删除所有容器

Docker 快速删除所有容器

js关于处理字符串中的空格问题方法总结