Ios swift 3从TextField中删除大量文本
我正在为移动应用程序工作,该应用程序将发送选定联系人的pdf,因此用户将找到“添加联系人”按钮以打开包含所有联系人列表的表视图。之后,用户将单击“完成”按钮。还有另一个视图显示用户选择的联系人的文本文件。我需要如果用户开始通过退格从textfield中删除名称 要删除所有名称,请同时从将向服务器发送id的阵列中删除id。 我的代码是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
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中获取所需字符串,并执行所需操作,搜索或允许其他文本字段。