问题标签 [xcode12]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
12914 浏览

ios - SwiftUI | 使用 onDrag 和 onDrop 在一个 LazyGrid 中重新排序项目?

我想知道是否可以使用View.onDragand在其中手动View.onDrop添加拖放重新排序?LazyGrid

虽然我能够使用 使每个项目都可拖动onDrag,但我不知道如何实现放置部分。

这是我正在试验的代码:

谢谢!

0 投票
1 回答
2276 浏览

swift - SwiftUI NavigationLink - “懒惰”的目的地?或者如何不编码重复的“标签”?

(在带有 Xcode 12 beta 的 macOS Big Sur 上)我在 SwiftUI 中一直在努力解决的一件事是从例如 a 导航,SetUpGameView它需要Game根据用户在此视图中输入的玩家名称创建一个结构,然后继续导航到GameViewvia NavigationLink,类似于按钮,当var game: Game?为 nil时应禁用。在用户输入所有必要的数据之前,无法初始化游戏,但在下面的示例中,我只需要playerName: String非空即可。

我有一个不错的解决方案,但它似乎太复杂了。

下面我将介绍多种解决方案,所有这些似乎都太复杂了,我希望你能帮助我想出一个更简单的解决方案。

游戏结构

设置游戏视图

天真的(非工作)实现是这样的:

但是,这不起作用,因为它会使应用程序崩溃。它使应用程序崩溃,因为表达式:GameView(game: game!)destionationNavigationLink 初始化程序中不会延迟评估,game!早期评估,并且一开始会为零,因此强制展开它会导致崩溃。这对我来说真的很困惑......感觉只是......错了!因为在使用所述导航之前不会使用它,并且在单击 NavigationLink 之前使用此特定初始化程序不会导致使用目标。所以我们必须用一个if let,但现在它变得有点复杂。我希望 NavigationLink 标签看起来相同,除了禁用/启用渲染,对于两个状态游戏 nil/non nil。这会导致代码重复。或者至少我没有想出比我在下面介绍的解决方案更好的解决方案。下面是两个不同的解决方案和第二个的第三个改进(重构为自定义视图ConditionalNavigationLink视图)版本......

NavigatableIfModelPresent

相同的解决方案,navToGameSolution2但重构,这样我们就不需要重复标签,或者构造多个AnyView...

感觉就像我在这里遗漏了一些东西......我不想在游戏变为非零时自动导航,并且我不希望在NavigationLink游戏非零之前启用。

0 投票
10 回答
17842 浏览

image - React Native 应用程序中的所有图像/快速图像不适用于 iOS 14 测试版和 Xcode 12 测试版

我已将我的 iPhone 设备升级到 iOS 14 测试版和 Xcode 12 测试版。然后我的 React Native 项目上的所有 Image/Fast Image 都无法显示(在以前的 iOS 13 和 Xcode 11.5 上运行良好)。

0 投票
2 回答
2627 浏览

swift - 将本地 Swift Package 目标添加到现有 Xcode 项目

我有一个现有的 Xcode 项目,其中包含“传统”iOS 应用程序(“ Foo ”)和 iOS 框架(“ FooLib ”)的目标。几天前 Xcode 12 测试版发布时,我在同一个项目中添加了一个多平台 (iOS/macOS) SwiftUI 应用程序目标(“ Foo SwiftUI ”)。现在我也想让我的框架跨平台,所以我在项目中添加了一个多平台 Swift 包(“ Foo Package ”)并将 iOS 框架类移动到新的 Swift 包中。然后我将此包添加到所有应用程序目标的框架、库和嵌入式内容部分。在我清理项目并再次尝试之前,它似乎适用于所有应用程序目标。无法解决:

我尝试将FooLib包删除并重新添加到应用程序目标,但它不再显示在要添加的框架和库的弹出列表中。Xcode 项目中是否明确不支持本地 Swift 包?我是否需要将包放在自己的 Git 存储库中并像任何其他第三方包依赖项一样进行设置?

我最困惑的是,它看起来好像在我创建 Swift 包之后就可以工作,但在我清理项目并尝试重新运行应用程序目标之后却没有。

0 投票
3 回答
530 浏览

swiftui - 场景相位意外变化

我正在尝试将新的 App 协议用于新的 SwiftUI 应用程序,并且我需要在应用程序级别检测到 .background 的场景相位更改,以便将少量应用程序数据保存到 .plist 文件中。我不知道这是一个错误还是我做错了什么,但它没有按预期工作。一旦点击按钮,当场景仍处于活动状态时,scenePhase 将更改为 .background!为了展示这种奇怪行为的一个例子,我展示了这个简单的代码:

当点击增量按钮时,scenePhase 变为 .background,然后,当 App 真正被发送到后台时,scenePhase 不会改变。

我发现将 .onChange(of: scenePhase) 移动到 View (ContentView) 可以正常工作,但 Apple 宣布您可以在 App 级别监控任何 scenePhase 更改,而这正是我在 View 级别不想要的。

0 投票
1 回答
9085 浏览

swift - 使用 Xcode 12 访问 SwiftUI 中的 ViewModel 字段:“访问安装在视图之外的状态值”

我认为这个错误消息对于 Xcode 12 中的 SwiftUI 来说是新的,因为它在 Google 中的命中率为 0,而消息本身相当通用:

在安装在 View 之外访问 State 的值。这将导致初始值的恒定绑定并且不会更新。

我有以下代码(删除了一些绒毛):

我曾经有过field权利,ContentView而且效果很好。现在 UI 不再更新,而是收到了运行时警告。

0 投票
9 回答
15907 浏览

swift - 在 SwiftUI 中使用参数初始化 @StateObject

我想知道目前(在询问时,第一个 Xcode 12.0 Beta 版)是否有一种方法来使用@StateObject来自初始化程序的参数来初始化 a 。

更具体地说,这段代码可以正常工作:

但这不会:

据我了解的作用@StateObject是使视图成为对象的所有者。我使用的当前解决方法是像这样传递已经初始化的 MyObject 实例:

但是现在,据我了解,创建对象的视图拥有它,而这个视图不拥有。

谢谢。

0 投票
2 回答
2869 浏览

ios - 如何在 iOS 14 @main 文件中获取 UIWindow 值?

我可以通过以下实现访问didFinishLaunchingWithOptions 。但是,我需要UIWindow变量。我不知道如何得到它。我正在使用 Xcode 12 测试版。iOS14,SwiftUI 生命周期。

0 投票
0 回答
141 浏览

macos - macOS 上侧边栏的导航问题 (SwiftUI)

我确实有一个带有侧边栏的应用程序,用于放置我的主导航。当我从侧边栏导航时,我的 DetailView 应显示在侧边栏旁边。但是,当我想从 MainView 导航到 DetailView 时,它不起作用。该视图仅显示为覆盖。

有什么方法可以从侧边栏和主视图本身在我的主窗口中导航?

0 投票
1 回答
5103 浏览

ios - SwiftUI 无法添加 onChange 事件

我有一个视图,其中显示了我的消息列表。每当添加新消息时,我都想滚动到底部。我正在尝试向其中添加一个onChange事件,ForEach但这会以一些奇怪的错误破坏我的代码:Referencing instance method 'onChange(of:perform:)' on 'Array' requires that 'Message' conform to 'Equatable'有时The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions当我删除onChange所有内容时都符合。

这是Message模型:

我在这里做错了什么?

`对于每个