首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift:从UITextField内部更改NSItemProvider值

Swift:从UITextField内部更改NSItemProvider值
EN

Stack Overflow用户
提问于 2018-02-01 05:03:03
回答 1查看 226关注 0票数 0

我一整天都在和这个做斗争,你可以看到我是斯威夫特的新手。

我试图在一个UITextField动作扩展中更新一个iOS。下面是正确的值日志,在loadItem()之外,可以设置正确的值。

出口中的弱变量?某种结束的事情?函数异步触发,并且不允许在UI完成后以这种方式更新UI?

提前谢谢你!

代码语言:javascript
运行
复制
class ActionViewController: UIViewController {

    //outlets
    @IBOutlet weak var bookmarkTitle: UITextField!

    //vars
    var pageTitle = ""



    override func viewDidLoad() {
        super.viewDidLoad()


         if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem {
             if let itemProvider = inputItem.attachments?.first as? NSItemProvider {
                 itemProvider.loadItem(forTypeIdentifier: kUTTypePropertyList as String) { [unowned self] (dict, error) in
                    // do stuff!
                    let itemDictionary = dict as! NSDictionary
                    let javaScriptValues = itemDictionary[NSExtensionJavaScriptPreprocessingResultsKey] as! NSDictionary
                    print(javaScriptValues)
                    //this works, gets correct data. how to assign to IBOutlet?
                    self.pageTitle = javaScriptValues["title"] as! String
                    NSLog("Title From JS Preprocessor: " + self.pageTitle)

                    /*===================================*/
                    //Reference to property 'bookmarkTitle' in closure requires explicit 'self.' to make capture semantics explicit
                        //bookmarkTitle.text = self.pageTitle

                    //when the line below is used, the action extension fails to even open
                    self.bookmarkTitle.text = self.pageTitle
                    /*===================================*/

                }
             }
         }
    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-01 05:50:40

尝试更改主队列中的文本,如下所示:

代码语言:javascript
运行
复制
DispatchQueue.main.async { 
// work that impacts the user interface 
self.bookmarkTitle.text = self.pageTitle 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48555672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档