Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift 3从TextField中删除大量文本_Ios_Swift - Fatal编程技术网

Ios swift 3从TextField中删除大量文本

Ios swift 3从TextField中删除大量文本,ios,swift,Ios,Swift,我正在为移动应用程序工作,该应用程序将发送选定联系人的pdf,因此用户将找到“添加联系人”按钮以打开包含所有联系人列表的表视图。之后,用户将单击“完成”按钮。还有另一个视图显示用户选择的联系人的文本文件。我需要如果用户开始通过退格从textfield中删除名称 要删除所有名称,请同时从将向服务器发送id的阵列中删除id。 我的代码是 let idArray = ["1","2","3","4"] let valueArray = ["Ahmad","ali","jean","sara"] let

我正在为移动应用程序工作,该应用程序将发送选定联系人的pdf,因此用户将找到“添加联系人”按钮以打开包含所有联系人列表的表视图。之后,用户将单击“完成”按钮。还有另一个视图显示用户选择的联系人的文本文件。我需要如果用户开始通过退格从textfield中删除名称

要删除所有名称,请同时从将向服务器发送id的阵列中删除id。 我的代码是

let idArray = ["1","2","3","4"]
let valueArray = ["Ahmad","ali","jean","sara"]
let StringVar = ""

//*Here I send the array to string to append "," to be showed in textFiled*
for item in valueArray {
            print("Found \(item)")
            StringVar = StringVar + item + ","
        }

textFiled?.text = StringVar

有什么帮助吗???

我以前没有实施过这样的事情。但是,我想我会尝试
textField(\utextfield:UITextField,shouldChangeCharactersinrange:NSRange,replacementString:string)
UITextFieldDelegate
开始。
当用户试图删除一个字符时,您可以删除两个逗号之间的整个字符串,或者从第一个/最后一个逗号到字符串的开始/结束

我认为这可能是此类工作的字符串解析难题。 也许你可以考虑使用: 个人列表的水平UICollectionView。此collectionView的单元格包括一个borderles UITextView(或者如果它是readonly,则可以是UILabel)和一个带有关闭(x)图标的小UIButton,用于为每个人执行删除操作

设计师看起来像这样:

此视图将以与阵列兼容的方式工作

以下是您应该注意的事项:

1-将collectionView与数组绑定,就像它是UITableView一样

extension YourViewController: UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {

public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return self.personList.count
}

public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = personCollectionView.dequeueReusableCell(withReuseIdentifier: "personNameCell", for: indexPath) as! personNameCell
...
}
2-不要忘记删除后重新加载collectionView

func personDeleteButtonPressed(sender: UIButton!) {
    //remove item from your list
    ...
    ...
    personCollectionView.reloadData()
}
3-动态设置单元格的尺寸

func collectionView(_ collectionView: UICollectionView,
                    layout collectionViewLayout: UICollectionViewLayout,
                    sizeForItemAt indexPath: IndexPath) -> CGSize {
...

我不能这样做,因为下一步我将让用户在文本文件中键入姓名,并从我的代码中搜索联系人列表以在文本文件中显示姓名。当然,您的选择是您的。但在单元格内有一个可编辑的文本字段。因此,您可以通过collectionView上的循环获取所有这些字符串,或者只获取一个特定的字符串。然后你可以合并,拆分,添加新的,删除。因此,您可以在此collectionView中获取所需字符串,并执行所需操作,搜索或允许其他文本字段。