标签: ipados

SwiftUI 2.0 List with children - 如何使显示按钮的可点击区域覆盖整个列表项

我正在为 iOS 14 制作一个 SwiftUI 应用程序,我有一个侧边栏列表,它使用 list 的新children:属性使列表可扩展:

但是,目前我只能在我精确单击披露箭头时展开此列表。例如,当我单击“我的酷项目”文本时,我也希望能够展开此列表。

这在“文件”应用程序中是可能的 - 当我单击“位置”文本时,我可以看到“位置”项的所有子项,但我不知道如何在我的应用程序中执行此操作。

为了澄清,List每个项目的项目是一个Text视图,子列表项目是NavigationLink

这种行为在 SwiftUI 中是否可能,甚至通过 onTapGesture 或除 a 以外的其他东西以编程方式进行List?提前感谢您的任何帮助/建议!

ios swiftui ipados ios14

4
推荐指数
1
解决办法
2832
查看次数

删除 PencilKit 中的内容

在 iOS 13/iPadOS 中使用 PencilKit 时,如何从屏幕上删除所有内容,或删除选定的内容(通过套索)?

我在 PKDrawing 或 PKCanvasView 中找不到执行这些操作的任何函数?

swift ios13 ipados pencilkit

3
推荐指数
1
解决办法
2706
查看次数

如何在 iPad Safari WebApp 全屏模式下隐藏自 iPadOS 13 以来出现的新网址栏?

现在,当通过 Safari 上的“添加到主屏幕”安装 WebApp 时,iPadOS 13 会显示一个白色/灰色条,即使添加了 apple-touch-fullscreen 元标记也是如此。该栏包括一个调整字体大小和请求桌面站点的菜单,但影响了可用的屏幕大小,因此用户现在必须滚动才能查看应用程序菜单。

有没有办法隐藏此栏,例如强制桌面/移动站点,以便不需要选择?

html safari ipados ipados13

3
推荐指数
1
解决办法
2760
查看次数

USBDriverKit驱动程序和客户端应用程序之间如何通信?

我们正在 macOS 上试验 DriverKit,而在 iPadOS 上 DriverKit 仍处于测试阶段。我们想要构建一个 iPad 驱动程序,允许我们的 iPad 应用程序与 USB 设备进行通信。

\n

我们做了什么:

\n
    \n
  1. 配置并实现了用作提供程序的驱动程序USBDriverKit::IOUSBHostInterface。当我们将设备插入 USB 端口时,macOS 会自动匹配/启动该驱动程序。接下来我们利用USBDriverKit::IOUSBHostPipe从我们的设备发送/接收数据。我们现在在日志中打印来自设备的数据。
  2. \n
  3. 研究DriverKit 扩展和客户端应用程序之间的通信
  4. \n
  5. 配置并实现了一个基于IOUserClientmacOS 应用程序并允许使用 API 打开通信通道的驱动程序IOServiceOpen。驱动程序有回调将数据传递到 macOS 客户端应用程序。
  6. \n
\n

目前,我们希望组合 2 个驱动程序,并使用回调将从 USB 设备接收到的数据传递到我们的客户端应用程序。不幸的是,我们陷入了困境,因为现在我们有 2 个驱动程序实例:

\n
    \n
  1. 当设备插入时,第一个实例由 macOS 自动运行
  2. \n
  3. virtual kern_return_t NewUserClient(uint32_t type, IOUserClient** userClient)当我们从客户端应用程序连接并调用方法时创建第二个实例。
  4. \n
\n

因此,我们不能使用第二个实例进行 USB 设备通信,因为它有错误的提供程序(IOUserClient),kern_return_t Start(IOService * provider)但我们需要IOUSBHostInterface启动:

\n
\xc2\xa0 \xc2\xa0 ivars->interface = …
Run Code Online (Sandbox Code Playgroud)

macos ipados driverkit

2
推荐指数
1
解决办法
1068
查看次数

“didRegisterForRemoteNotificationsWithDeviceToken”从未调用过

我需要一些帮助。

我完全不知道为什么我的通知不起作用。

我的 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)

push-notification apple-push-notifications ios swift ipados

1
推荐指数
1
解决办法
3718
查看次数

iOS - 有没有一种以编程方式创建不拆分屏幕的多个窗口的方法?

我正在使用 UIScenes 和 SwiftUI 创建一个简单的应用程序。

我需要以编程方式创建多个窗口,但与 requestSceneSessionActivation 的设计结果不同,它将屏幕分成两部分。我需要另一个,就像图片一样......在此处输入图片说明

我在 UIScene 文档中没有找到任何关于它的内容。如果您也知道关闭它的方法,那就太棒了!

ios swift swiftui ipados uiscene

0
推荐指数
1
解决办法
558
查看次数

SwiftUI:在启动/进入前台时显示“锁定屏幕”?

我正在 SwiftUI 中开发一个 iOS 应用程序,需要先锁定/解锁钥匙串中的加密密钥,然后才能执行任何操作。我希望在使用应用程序时将这些键保留在内存中,然后在用户切换到另一个应用程序或进入后台时从内存中删除。当应用程序启动或返回前台时,我想提示他们输入密码来解锁密钥。

我过去在使用 UIKit 时做过类似的事情,但这个应用程序是用 SwiftUI 编写的。我的应用程序的根目录是 a TabViewView每个选项卡中都显示许多其他 s 。我希望弹出这个“锁定屏幕”,无论View当时哪个处于活动状态。我知道我可以在UIApplicationDelegateNotification中订阅许多s 。这可以处理从内存中删除密钥的任务。我不知道如何将锁定屏幕显示在当时可能处于活动状态的任何其他屏幕之上。ViewView

是否有一种“标准”SwiftUI 方法可以实现此目的?我想尽可能遵循 SwiftUI 最佳实践,但还没有看到任何关于如何做这样的事情的好例子。

ios swiftui ipados

0
推荐指数
1
解决办法
1074
查看次数