如何从外部源更新 uitextview。

     2023-02-24     181

关键词:

【中文标题】如何从外部源更新 uitextview。【英文标题】:How to Updatie a uitextview from an external source. 【发布时间】:2017-01-04 23:21:34 【问题描述】:

我希望能够通过在我的视图中调用一个方法来更新我的 uitextview。使用此代码,我得到一个运行时错误:

Unexpectedly found nil while unwrapping an Optional value

如果我注释掉它运行的 vw.updateTerm(...) 行。最终,我想用从 BLE 和/或 http 请求更新的数据更新 uitextview。任何帮助或指导将不胜感激。

我的 Playground Swift 3 代码如下所示:

import UIKit
import PlaygroundSupport

public class TextViewController : UIViewController 

    public var textView : UITextView!

    override public func loadView() 
        textView = UITextView()
        textView.text = "Hello World!\nHello Playground!"

        self.view = textView
    

    func updateTerm(textToUpdate: String) 
        self.textView.text.append(textToUpdate)
    


let vw = TextViewController()
vw.updateTerm(textToUpdate: "here you go")

PlaygroundPage.current.liveView = vw

【问题讨论】:

【参考方案1】:

问题在于,当您尝试updateTerm 时,仍然没有调用loadView,这意味着loadView 中的textViewnil vw 实例。

textView 被声明为强制解包属性而言,任何尝试在它为nil(如您的情况)时使用它都会导致运行时错误。

您应该将其设为常规可选:

public var textView : UITextView?

override public func loadView() 
    textView = UITextView()
    textView?.text = "Hello World!\nHello Playground!"
    self.view = textView


func updateTerm(textToUpdate: String) 
    self.textView?.text.append(textToUpdate)

或者,例如,惰性属性(如果适合您的情况):

lazy public var textView = UITextView()

override public func loadView() 
    textView.text = "Hello World!\nHello Playground!"
    self.view = textView


func updateTerm(textToUpdate: String) 
    self.textView.text.append(textToUpdate)

更多信息可以在here找到。

【讨论】:

谢谢,该链接有助于更好地解释它。我使用了 Lazy 选项,它对运行时错误很有用。我添加了如下几行以添加到我的文本视图中,它会更新,但文本永远不会进入显示的文本视图。 [code]print(vw.textView.text) vw.updateTerm(textToUpdate: "\n你去 2") print(vw.textView.text)'code' 添加了这些代码行。看来我有 2 个 textView 实例,因为在操场上它附加到 1 个实例而不是正在显示的那个实例。我需要在课堂上做更多的事情吗?vw.updateTerm(textToUpdate: "\nhere you go") print(vw.textView.text) vw.updateTerm(textToUpdate: "\nhere you go 2") print(vw.textView.text)

如何从外部托管源 pip install pyx 包?

】如何从外部托管源pipinstallpyx包?【英文标题】:HowcanIpipinstallpyxpackagefromexternallyhostedsource?【发布时间】:2015-03-1816:22:17【问题描述】:Pip知道pyx包:$pipsearchpyxPyX-PythonpackageforthegenerationofPostScriptandPDFfiles尝试安装会报错:$pipinst... 查看详情

iOS 应用程序 - 如何从外部源更改启动图像?

】iOS应用程序-如何从外部源更改启动图像?【英文标题】:iOSApp-HowcanIchangethelaunchimagefromanexternalsource?【发布时间】:2017-11-0815:20:14【问题描述】:当iOS应用启动时,它会从名为Images.xcassets的文件夹中获取启动图像。我想知道如... 查看详情

如何在 AnyLogic 7 中从外部源获取资源容量?

】如何在AnyLogic7中从外部源获取资源容量?【英文标题】:HowtogetresourcecapcityfromexternalsourceinAnyLogic7?【发布时间】:2014-08-3003:01:33【问题描述】:我有一个简单的模拟,它应该“试运行”一个班次安排结果。我的问题是将班次输... 查看详情

如何通过点击外部来关闭 UITextView?

】如何通过点击外部来关闭UITextView?【英文标题】:HowtodismissanUITextViewwithtappingoutside?【发布时间】:2012-01-3114:00:20【问题描述】:我对@9​​87654321@s有点怀疑。我以前放UITextFields,和老铁们一起敲门把键盘拆掉:-(void)touchesEnded... 查看详情

从源文件名更改的外部源导入

】从源文件名更改的外部源导入【英文标题】:importingfromanexternalsoucewheresourcefilenamechanges【发布时间】:2016-06-0212:23:58【问题描述】:如果这是一个简单的问题,请原谅我,我还在学习..我有一个Excel文件,它获取数据并执行分... 查看详情

Jquery UI Autocomplete - 从外部源绘制数据时如何使用 Accent Mapping

】JqueryUIAutocomplete-从外部源绘制数据时如何使用AccentMapping【英文标题】:JqueryUIAutocomplete-howtouseAccentMappingwhendrawingdatafromexternalsource【发布时间】:2021-11-0808:15:04【问题描述】:我的网站上有一个搜索表单,其中JQueryUI自动完成功... 查看详情

嵌入在 UIViewController 中的 UIHostingController - 如何从外部更新 @State?

】嵌入在UIViewController中的UIHostingController-如何从外部更新@State?【英文标题】:UIHostingControllerembeddedinUIViewController-howtoupdate@Statefromoutside?【发布时间】:2021-04-0616:55:52【问题描述】:我正在使用UIHostingController将ContentView嵌入到Vie... 查看详情

如何使用网络库从函数外部获取更新值

】如何使用网络库从函数外部获取更新值【英文标题】:HowdoIgetupdatedvaluefromoutsideoffunctionusingnetlibrary【发布时间】:2020-07-1307:02:04【问题描述】:我是JS新手。我正在尝试构建API服务器,该服务器必须使用套接字从其他服务器接... 查看详情

如何从主窗体更新子窗体中的图像框控件源

】如何从主窗体更新子窗体中的图像框控件源【英文标题】:HowtoupdateImageboxcontrolsourceinsubformfrommainform【发布时间】:2020-11-1717:03:14【问题描述】:我有一个主窗体和一个加载图像记录的子窗体。当我设置表单时,我通过以下属... 查看详情

如何在 xcode 中从控制器外部更新视图

】如何在xcode中从控制器外部更新视图【英文标题】:Howtoupdateaviewfromoutsideacontrollerinxcode【发布时间】:2012-06-1716:53:43【问题描述】:到目前为止,我只从其控制器中更新了一个视图。我现在处于一种不同的情况,我需要根据我... 查看详情

登录后如何更新 UITextView

】登录后如何更新UITextView【英文标题】:HowtoupdateUITextViewafterlogin【发布时间】:2012-02-2405:10:30【问题描述】:我正在尝试使用ARC将Facebook集成到我的iOS应用中。为了使用FBSDK,我已经为这些文件禁用了“-fno-objc-arc”的ARC。但是... 查看详情

如何以编程方式更新 UITextView maximumNumberOfLines 并查看 UI 更新。

】如何以编程方式更新UITextViewmaximumNumberOfLines并查看UI更新。【英文标题】:HowtoupdateUITextViewmaximumNumberOfLinesprogrammaticallyandseeupdateonUI.【发布时间】:2018-08-2620:50:01【问题描述】:我有禁用滚动的UITextView。我需要以编程方式更改m... 查看详情

如何从外部应用程序在 Dynamics 365 Finance & Operations 中插入/更新客户

】如何从外部应用程序在Dynamics365Finance&Operations中插入/更新客户【英文标题】:HowdoIInsert/UpdateaCustomerinDynamics365Finance&Operationsfromanexternalapplication【发布时间】:2020-12-0204:32:23【问题描述】:如何从外部c#应用程序在Dynamics365... 查看详情

onmousemove 事件不会从外部源触发?

】onmousemove事件不会从外部源触发?【英文标题】:onmousemoveeventdoesnotfirefromwithinexternalsource?【发布时间】:2017-12-2722:25:00【问题描述】:我正在我网页的一个div中加载一个外部网页(即本示例中的www.duckduckgo.com)。我想在div内部... 查看详情

PhoneGap:从外部源加载数据

】PhoneGap:从外部源加载数据【英文标题】:PhoneGap:loaddatafromexternalsources【发布时间】:2012-05-1516:17:08【问题描述】:我想创建一个带有phonegap的网络应用程序(我正在尝试使用Android模拟器),但我遇到了“相同域策略”的问题... 查看详情

如何成为从一个 UITextView 到另一个 UITextView 的响应者?

】如何成为从一个UITextView到另一个UITextView的响应者?【英文标题】:HowtobecomeresponderfromoneUITextViewtoanotherUITextView?【发布时间】:2012-07-1411:25:46【问题描述】:我的iPhone应用中有两个UITextView。当用户选择一个UITextView时,控制器... 查看详情

如何从 UITextView 获取删除(退格)事件?

】如何从UITextView获取删除(退格)事件?【英文标题】:Howtogetdelete(backspace)eventfromUITextView?【发布时间】:2015-09-0103:25:51【问题描述】:我有简单的解决方案。-(BOOL)textView:(UITextView*)textViewshouldChangeTextInRange:(NSRange)rangereplacementTex... 查看详情

从外部源设置 UITableViewCell 内的内容?

】从外部源设置UITableViewCell内的内容?【英文标题】:SettingcontentinsideofaUITableViewCellfromoutsidesource?【发布时间】:2014-02-2621:09:07【问题描述】:我有一个带有几个UITableViewCells的UITableViewController。每个单元格都有不同的内容:标签... 查看详情