我正在为 iOS 14 制作一个 SwiftUI 应用程序,我有一个侧边栏列表,它使用 list 的新children:
属性使列表可扩展:
但是,目前我只能在我精确单击披露箭头时展开此列表。例如,当我单击“我的酷项目”文本时,我也希望能够展开此列表。
这在“文件”应用程序中是可能的 - 当我单击“位置”文本时,我可以看到“位置”项的所有子项,但我不知道如何在我的应用程序中执行此操作。
为了澄清,List
每个项目的项目是一个Text
视图,子列表项目是NavigationLink
这种行为在 SwiftUI 中是否可能,甚至通过 onTapGesture 或除 a 以外的其他东西以编程方式进行List
?提前感谢您的任何帮助/建议!
在 iOS 13/iPadOS 中使用 PencilKit 时,如何从屏幕上删除所有内容,或删除选定的内容(通过套索)?
我在 PKDrawing 或 PKCanvasView 中找不到执行这些操作的任何函数?
现在,当通过 Safari 上的“添加到主屏幕”安装 WebApp 时,iPadOS 13 会显示一个白色/灰色条,即使添加了 apple-touch-fullscreen 元标记也是如此。该栏包括一个调整字体大小和请求桌面站点的菜单,但影响了可用的屏幕大小,因此用户现在必须滚动才能查看应用程序菜单。
有没有办法隐藏此栏,例如强制桌面/移动站点,以便不需要选择?
我们正在 macOS 上试验 DriverKit,而在 iPadOS 上 DriverKit 仍处于测试阶段。我们想要构建一个 iPad 驱动程序,允许我们的 iPad 应用程序与 USB 设备进行通信。
\n我们做了什么:
\nUSBDriverKit::IOUSBHostInterface
。当我们将设备插入 USB 端口时,macOS 会自动匹配/启动该驱动程序。接下来我们利用USBDriverKit::IOUSBHostPipe
从我们的设备发送/接收数据。我们现在在日志中打印来自设备的数据。IOUserClient
macOS 应用程序并允许使用 API 打开通信通道的驱动程序IOServiceOpen
。驱动程序有回调将数据传递到 macOS 客户端应用程序。目前,我们希望组合 2 个驱动程序,并使用回调将从 USB 设备接收到的数据传递到我们的客户端应用程序。不幸的是,我们陷入了困境,因为现在我们有 2 个驱动程序实例:
\nvirtual kern_return_t NewUserClient(uint32_t type, IOUserClient** userClient)
当我们从客户端应用程序连接并调用方法时创建第二个实例。因此,我们不能使用第二个实例进行 USB 设备通信,因为它有错误的提供程序(IOUserClient),kern_return_t Start(IOService * provider)
但我们需要IOUSBHostInterface
启动:
\xc2\xa0 \xc2\xa0 ivars->interface = …
Run Code Online (Sandbox Code Playgroud) 我需要一些帮助。
我完全不知道为什么我的通知不起作用。
我的 AppDelegate 看起来像这样:
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
print("token: \(token)")
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("failed to register for remote notifications with with error: \(error)")
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UNUserNotificationCenter.current().delegate = self
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { …
Run Code Online (Sandbox Code Playgroud) 我正在 SwiftUI 中开发一个 iOS 应用程序,需要先锁定/解锁钥匙串中的加密密钥,然后才能执行任何操作。我希望在使用应用程序时将这些键保留在内存中,然后在用户切换到另一个应用程序或进入后台时从内存中删除。当应用程序启动或返回前台时,我想提示他们输入密码来解锁密钥。
我过去在使用 UIKit 时做过类似的事情,但这个应用程序是用 SwiftUI 编写的。我的应用程序的根目录是 a TabView
,View
每个选项卡中都显示许多其他 s 。我希望弹出这个“锁定屏幕”,无论View
当时哪个处于活动状态。我知道我可以在UIApplicationDelegateNotification
中订阅许多s 。这可以处理从内存中删除密钥的任务。我不知道如何将锁定屏幕显示在当时可能处于活动状态的任何其他屏幕之上。View
View
是否有一种“标准”SwiftUI 方法可以实现此目的?我想尽可能遵循 SwiftUI 最佳实践,但还没有看到任何关于如何做这样的事情的好例子。