gpt4 book ai didi

ios - "textViewDidChange"Swift 的重新声明无效

转载 作者:行者123 更新时间:2023-11-29 01:48:20 25 4
gpt4 key购买 nike

我有三个不同的文本框,我需要在其中使用 3 种不同的“textViewDidChange”方法。将它们组合成一个功能对我来说不起作用,因为它们是三种可能相互影响的不同 Action 。所以我正在尝试制作三个不同的功能,如下所示。但是我收到“无效的重新声明”错误。我怎样才能弄清楚?

func textViewDidChange(messageTxt1: UITextView) {

var len = count(messageTxt.text.utf16)

var diff = 90 - len

if diff < 0 {

charsLbl.textColor = UIColor.redColor()
} else {

charsLbl.textColor = UIColor.blackColor()
}

charsLbl.text = "\(diff) chars left"

}


func textViewDidChange (messageTxt2: UITextView) {

refreshResults()

var len2 = count(messageTxt2.text.utf16)

if len2 > 3 {

println("search")

}

else

{

resultsTable.hidden = true

}

var diff2 = 30 - len2

if diff2 < 0 {

charsLbl2.textColor = UIColor.redColor()
} else {

charsLbl2.textColor = UIColor.blackColor()
}

charsLbl2.text = "\(diff2) chars left"


}


func textViewDidChange (messageTxt3: UITextView) {


var len3 = count(messageTxt3.text.utf16)

var diff3 = 30 - len3

if diff3 < 0 {

charsLbl3.textColor = UIColor.redColor()
} else {

charsLbl3.textColor = UIColor.blackColor()
}

charsLbl3.text = "\(diff3) chars left"


}

最佳答案

这是不可能的,因为每个 textViewDidChange: 方法都采用相同的类型作为参数(函数作用域内的变量名称在这里不起作用)。

解决多个函数问题的一种方法是使用一个 textViewDidChange: 方法,并将其用作调用其他函数的一种方式,如下所示:

func textViewDidChange(textView: UITextView) {
switch textView {
case textView1:
textViewDidChange1()
break
case textView2:
textViewDidChange2()
break
case textView3:
textViewDidChange3()
break
default:
print("Shouldn't happen")
break
}
}

func textViewDidChange1() {
// Do something
}

func textViewDidChange2() {
// Do something
}

func textViewDidChange3() {
// Do something
}

textView1、textView2 和 textView3 是您的 UITextView 的导出。这对我来说看起来有点矫枉过正,但它确实有效。

关于ios - "textViewDidChange"Swift 的重新声明无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31673573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com