- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个今日 View 扩展,其中包含一些我没有在界面生成器中设置的自定义 View 元素。
现在我想知道生命周期中正确的点是初始化小部件内容。
我读到了关于更新 widgetPerformUpdateWithCompletionHandler
中的内容,因此我实现了对应该与 View 相关的新更新的检查。
但我的观察表明该方法是在 viewDidAppear
之前调用的,因此没有要更新的 View 。另外,我认为小部件会在内存中保留一段时间,以便我可以在 widgetPerformUpdateWithCompletionHandler
中拥有某个对象,我可以在 viewDidAppear
中更新和使用其内容,但这不是案例(每次都会加载)
那么正确的方法是什么:在 widgetPerformUpdateWithCompletionHandler
中将内容写入磁盘,我可以依赖内存中的内容还是只是忽略并在每次加载时刷新?
最佳答案
在 TodayViewController.m
中,每次打开通知时都会调用 -viewDidLoad()
方法。因此,当您检查“今日”小部件时,它会调用 -viewDidLoad()
。因此,您可以在 -viewDidLoad()
中进行自定义。除非您不想检查以前的状态。
直接来自博客,该博客帮助使用实时数据创建“今日”小部件:
Caching We can take advantage of NSUserDefaults to save the calculated used space between launches. The lifecycle of a widget is short so if we cache this value, we can set up the user interface with an initial value and then calculate the actual value.
编辑:
来自Apple documentation它指出
To help your widget look up to date, the system occasionally captures snapshots of your widget’s view. When the widget becomes visible again, the most recent snapshot is displayed until the system replaces it with a live version of the view.
这也是状态,从通知中心,我们可以获取状态和快照的小部件详细信息。
对此不确定,但它指出小部件和包含应用程序都使用以下方法来检查其内容。关于如何获取小部件快照没有太多细节。
func setHasContent(_ flag: Bool,
forWidgetWithBundleIdentifier bundleID: String!)
NCWidgetController setHasContent
编辑 2:在扩展中使用 NSUserDefaults:
您有两个 .entitlements
文件,一个用于主机应用,第二个用于扩展应用,请在这两个文件中添加以下 key
<key>com.apple.security.application-groups</key>
<array>
<string>group.YourExtension</string>
</array>
您看到键的值为 group.YourExtension
它是共享的主机应用程序和扩展应用程序的通用 key
使用 NSUserDefaults
中的 group.YourExtension
保存数据
关于ios - 显示今天 View 小部件内容的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26732481/
我找到了很好的函数 =GOOGLEFINANCE("AAPL";"price";TODAY(); today()-60) 可以给出指定日期范围内的股票价格 - 它工作正常。我试图用它来获取 EPS 或
基于云计算的大规模即时云渲染技术,让每个人都拥有了“数字生命”。 2023的开年爆款,非《流浪地球2》莫属。 它展开了人类的新话题,关于平行空间,关于数字生命,关于人类文明
我试图过滤掉比今天更大的日期。我查找了语法,但日期部分不起作用;我仍然在结果中得到日期 > 今天。 有人可以帮我解决这个问题吗?!谢谢!这是查询: =iferror(sort(if(isblank(S
这就是我现在所拥有的: set_time_limit(120); $now = (new \DateTime)->format('Y-m-d H:i:s'); $nowYmd = (new \Date
这个问题在这里已经有了答案: 关闭 12 年前。 Possible Duplicate: Select * from table where date = today 你好,我正在尝试做一个 mys
我使用 CouchDB 作为事件日志,我想在它之上构建简单的 UI,以便我可以更轻松地查询事件。 我可以使用原始 HTTP 调用并手动构建 View ,也可以使用 CouchApp 框架。 问题是这些
我似乎无法在“小部件模拟器”中运行“今日”小部件(或与此相关的任何扩展名)。模拟器启动,并说“无法打开小部件”以及 Failed to find Widget /Users/SomeUser/Libr
我正在使用来自此来源的日期选择器 http://jqueryui.com/datepicker/#buttonbar ,我正在尝试让按钮栏上的“今天”按钮处于事件状态,请任何人帮助我。 $(".dat
我是Prometheus和警报方面的新手,我无法通过查看文档来完善答案。 我有一些数据即将进入Elasticsearch集群。每天,该过程都会在Elasticsearch上创建一个新索引,并将当天的数
我有一个应用程序和一个今天的扩展程序,它们使用安全组标识符共享Core Data持久性存储。 主应用程序更新Core Data存储,而扩展名仅从存储中读取。 我在应用程序和扩展程序中都使用了NSFet
我在项目中完成了Today扩展的一半。 我不必向公众发布半成品,但也希望保持相同的代码库,这样可以节省代码维护时间。 没有人知道没有内置“今日”扩展程序的发布应用程序的方法吗? 谢谢 最佳答案 在应用
我花了很长时间来了解段注册的内容目的是?我已经准备好知道这来自过去 (8086)只有 1 MByte 的物理内存。但是CPU有只有 16 位宽的地址寄存器。有了这 16 个地址位你只能寻址 64K 字
我有一个表格,其中包含成员(member)加入俱乐部时输入的日期。该列是沼泽标准,类型为 DATE。不需要时间。 基本上,我正在尝试找到一种 future 不可能的方式? 最佳答案 您可以使用触发器。
我需要获取早于或等于今天的日期。我正在使用 C# LINQ。 只是想知道以下是否是最有效的方法: pr.PgDate >= DateTime.Today 最佳答案 视情况而定,假设您使用的是将其直接转
$str = 'BEGIN This is a "quote" test. \'Single\' END'; echo $str . "\n"; echo mysql_real_escape_stri
在 HTML 5 中是否支持在 Silverlight 中真正容易做到的事情? 例如,将一个文件(由用户选择)转换为一个字节数组,该字节数组可以进行 base64 编码并传递给网络服务? 或者,创建/
使用 Oracle,如何在 11:59:59 选择当前日期(即 SYSDATE)? 考虑到午夜的定义might be a little ambiguous (星期四午夜是指跨越星期四和星期五还是跨越星
My Today 扩展需要有一个基于小部件显示内容的动态高度。我能够通过在最底部元素上添加约束来实现这一点:底部布局指南的顶部小于或等于最底部元素的底部,常量为 0,优先级为 999,乘数为 1。 这
我相信你们中的许多人已经查看了今天的 (2011-02-08) Google's doodle (link to article on CNN if doodle changes)。这太棒了,我试着弄
如下所示: ? 1
我是一名优秀的程序员,十分优秀!