跳到主要内容

2 篇博文 含有标签「UIKit」

查看所有标签

SwiftUI 中实现共享跨平台(iOS/macOS)代码

· 阅读需 3 分钟
GoSwiftUI
goswiftui.com

在SwiftUI中构建应用程序的主要吸引力在于能够跨平台共享 UI 代码,尤其是 iOS 和 macOS。它并不完美,您经常需要进行一些#if os()检查,但是当它起作用时,它确实很棒。在 SwiftUI 出现之前,您已经可以在 iOS 和 macOS 之间共享大量(非 UI)代码。许多系统框架在两个平台上都可用,例如FoundationCore Data。偶尔会存在 API 差异,但它们很少会带来很大的负担。

在开发跨平台 SwiftUI 应用程序时,最大的问题是当您需要在 macOS上使用AppKit和在 iOS上使用UIKit时。通常,您需要的 API(因为 SwiftUI 中没有它们)完全不同。但是,有时 API几乎相同,但只是不同,以至于需要分支到特定于平台的代码路径。一个很好的例子是UIPasteboard在 iOS 和NSPasteboardmacOS 上。

在我正在开发的这个跨平台 SwiftUI 应用程序中,我希望允许用户从表格视图中复制一些文本。两个平台共享 UI 代码,但不共享底层复制功能——因为我们需要在 macOS 上使用 AppKit,在 iOS 上使用 UIKit。但我想保持调用站点的复制操作代码干净,无需进行大量#if os()检查。为此,您可以巧妙地使用typealias.

使用 SwiftUI/UIKit 实现 iOS 应用密码自动填充

· 阅读需 4 分钟
GoSwiftUI
goswiftui.com

了解如何在 SwiftUI 和 UIKit 实现 Apple 的密码自动填充。

Apple 的密码自动填充功能允许用户在不同设备上登录同一个帐户,而无需记住他们的凭据。

例如,在 Web 应用程序中注册时,用户可以生成密码并将凭据保存在他们的 iCloud 钥匙串中。当他们在某个时候运行本机应用程序以访问同一帐户时,该应用程序会在密码 QuickType 栏中建议为网站存储的凭据。在用户进行身份验证后,假设使用 Face ID,系统会预先填写凭据 - 因此无需重新输入它们。