在解决 "发送到实例的选择器未被识别 "的消息时遇到困难。

问题描述 投票:-1回答:1

我试图创建一个动作,当按钮被按下时,通过将其当前的标题替换为一个属性字符串来下划线。然而,这一直导致 "unrecognized selector sent to instance "错误。我已经将一个IBAction连接到这个按钮上,并创建了一个引用它的IBOutlet弱变量。据我所知,这些应该不会相互干扰。

下面是我连接到按钮的动作的代码。

     @IBAction func voButtonTapped(_ sender: Any) {
          let voString = "vo"
          let attributedvo = NSAttributedString(string: voString, attributes: underlineAttribute)
          vButton.setAttributedTitle(attributedvo, for: .normal)
}        

这就是下面的错误。

[__SwiftValue set]: 未识别的选择器发送到实例0x600001584510。

underlinedAttribute:

let underlineAttribute: [NSAttributedString.Key: Any] = [
    .font: UIFont(name: "Rockwell-Bold", size: 35) as Any,
    .foregroundColor: ColorManager.specialYellow,
    .underlineStyle: NSUnderlineStyle.single.rawValue]

vButton:

    @IBOutlet weak var vButton: UIButton!

ColorManager:

struct ColorManager {
  static let specialYellow = Color("Special Yellow")

}

swift xcode xcode11 ibaction unrecognized-selector
1个回答
0
投票

colorManager结构导致了这个问题。

我不得不把它从

   static let specialYellow = Color("special yellow")

   static let specialYellow = UIcolor(red: 0.85, green: 0.68, blue: 0.00, alpha: 1.00)

所以基本上我不能使用我原来保存的颜色,只能从一个十六进制调色板中找到一个类似的颜色,然后我使用一个在线转换器将其转换为UIcolor。

© www.soinside.com 2019 - 2024. All rights reserved.