Swift:更改 UItextView 中文本的按钮?

Posted

技术标签:

【中文标题】Swift:更改 UItextView 中文本的按钮?【英文标题】:Swift: a button to change the text in the UItextView? 【发布时间】:2020-06-07 17:45:44 【问题描述】:

我正在尝试实现一个按钮来触发我在 UItextView 中的原始文本。我看过这篇文章: Trigger button to change text in UITextView in swift3 xcode 8 ios 10

然后我意识到它只适用于 UItextField。由于我需要包装我的文本,我想知道是否可以使用 UItextView 执行类似的操作?

目前,我有:

@IBOutlet var Textfield: UITextView!
@IBOutlet var ChangingText: [UIButton]!


@IBAction func ChangingTextTapped(_ sender: Any) 
        Textfield.text = "Changing text here"
    

但我收到以下错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM setText:]: unrecognized selector sent to instance 0x282d15b90'

提前致谢!

解决方案: 按照 Dejan Atanasov 的建议,它运行良好:

 @IBOutlet var Textfield: UITextView!
    @IBOutlet var ChangingText: UIButton!


    @IBAction func ChangingTextTapped(_ btn: UIbutton) 
            Textfield.text = "Changing text here"
        `

【问题讨论】:

【参考方案1】:

要通过按下按钮更改 UITextView 文本,您需要以下代码:

@IBOutlet fileprivate weak var textView: UITextView!
@IBOutlet fileprivate weak var changeTextBtn: UIButton!


@IBAction func onChangeTextButton(_ btn: UIButton)
    textView.text = "Change text to something else!"

@IBAction 与 Interface Builder 中的按钮连接,并确保您选择了 Touch Up Inside 事件(见屏幕截图)。就是这样!

这是我点击按钮时的结果:

【讨论】:

效果很好!谢谢!我认为改变 _btn: UIbutton 是关键! 我可以问你一个后续问题吗?如果我有多个要使用同一个按钮更改的文本行,我可以添加更多行 textView.text = "Change1!", textView.text = "Change2!"像这样?有可能吗? 不,你不能调用 textVew.text 两次,它只会覆盖之前的值。如果要在新行中添加文本,则应使用 textView.text = "Change1!\nChange2!"。【参考方案2】:

无需添加按钮数组。

@IBOutlet weak var textViewDemo: UITextView!

@IBAction func upgradeBtnTapped(_ sender: Any) 

textViewDemo.text = "Set Something else"

【讨论】:

【参考方案3】:

您的代码存在以下问题:

@IBOutlet var ChangingText: [UIButton]!

您已通过将 UIButton 括在括号中...[UIButton] 将您的按钮声明为 UIButtons 数组。只需删除括号。

【讨论】:

以上是关于Swift:更改 UItextView 中文本的按钮?的主要内容,如果未能解决你的问题,请参考以下文章

Swift 4 UITableView 将一个单元格设为 UITextView

在 Swift 中更改 UITextView 的 textColor

SWIFT - 改变 UITextView 的高度,xcode 6 GM

SWIFT - 改变 UITextView 的高度,xcode 6 GM

在 Swift 中的 UITextView 中添加占位符文本?

Swift:在 UITextView 中使用占位符文本禁用空白/换行符文本的栏按钮