标签: mac-catalyst

Mac-catalyst - how to make window of min size?

Mac catalyst allows to resize window, any way to provide minimum window size for Mac catalyst app?

macos ios13 mac-catalyst

5
推荐指数
4
解决办法
662
查看次数

Mac Catalyst UICollectionViewCompositionalLayout错误

我有以下内容UICollectionViewCompositionalLayout

public lazy var layout: UICollectionViewLayout = {
    let layout = UICollectionViewCompositionalLayout {
        (sectionIndex: Int, layoutEnvironment: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in
        let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0),
                                             heightDimension: .fractionalHeight(1.0))
        let item = NSCollectionLayoutItem(layoutSize: itemSize)

        let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0),
                                              heightDimension: .absolute(115))

        var count: Int = 2
        if self.view.traitCollection.horizontalSizeClass != .compact {
            if self.view.frame.size.width > 900 {
                count = 5
            } else {
                count = 3
            }
        }

        let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitem: item, count: count)
        let spacing = CGFloat(10) …
Run Code Online (Sandbox Code Playgroud)

uikit ios uicollectionview mac-catalyst

5
推荐指数
0
解决办法
57
查看次数

使用催化剂移植到Mac时排除Pod

由于Catalyst,最终可以将应用程序移植到macOS了,问题是,许多Pod不支持AppKit。最常见的一种是Crashlytics / Firebase。

In [...]/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics(CLSInternalReport.o), building for Mac Catalyst, but linking in object file built for iOS Simulator, file '[...]/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics' for architecture x86_64
Run Code Online (Sandbox Code Playgroud)

由于这是一个新话题,我找不到有关如何从macOS的构建中删除pod的文档,但如何在iOS和iPadO S上保留它

可以在代码中使用:

#if !targetEnvironment(macCatalyst) 
// Code to exclude for your macOS app
#endif
Run Code Online (Sandbox Code Playgroud)

但是问题的一部分,另一部分是仅针对iOS链接容器...

如果该库对于macOS而言并不重要,但仍在iOS上仍需要,那么最简单/最佳的做法是什么?

ipad ios cocoapods swift mac-catalyst

5
推荐指数
5
解决办法
163
查看次数

无法将 iPad 应用程序转换为 Mac 应用程序:Xcode 找不到任何与“maccatalyst.com...”匹配的 Mac Catalyst 应用程序开发配置文件

我正在尝试创建 iPad 应用程序的 Mac Catalyst 版本。我选中了复选框,选择了“我的 Mac”方案,我运行了...然后,代码签名错误(链接如下)!

在此输入图像描述

当我选中该复选框时,“签名和功能”选项卡添加了一个新的 macOS 平台条目和一个捆绑包标识符:maccatalyst.com.mycompany.myapp。该 maccatalyst.com 捆绑包 ID 未显示在 Apple 开发者网站的“证书、标识符和配置文件”部分中。当我尝试通过添加应用程序 ID、选择 Mac 并指定显式捆绑包 ID 来手动添加它时,出现以下错误:标识符为“maccatalyst.com.mycompany.myname”的应用程序 ID 不可用。请输入不同的字符串。

正如此处所建议的,我还尝试: 1. 转到“证书、标识符和配置文件”。2. 选择“配置文件” 2. 选择您尝试从中进行催化的 iOS 应用程序。3. 启用“Mac”。4. 等待几个小时。

我必须如何进行?

macos code-signing ipad provisioning-profile mac-catalyst

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

Mac Catalyst 上的系统分组背景颜色对于浅色模式不正确

我正在尝试在 Catalyst 应用程序中重新创建与 iOS 上的设置应用程序相同的外观和感觉。

我得到了一个 SplitViewController,其中一个 TableViewController 设置为“分组为主”,一个 TableViewController 设置为“插入分组为详细信息”。

对于表视图,我将背景颜色设置为系统分组背景颜色,对于表视图单元格,我将背景颜色设置为辅助系统分组背景颜色。

除了 Mac 上的浅色模式外,所有设备(iOS / Mac)上的一切看起来都符合预期。看起来颜色颠倒了。表视图应具有浅灰色背景颜色,表视图单元格应具有白色背景颜色,但反之亦然。

这是 Mac 的默认行为还是有问题?

我在 GitHub 上创建了一个示例项目:
https ://github.com/robertveringa89/systemgroupedbackgroundcolor

uitableview systemcolors swift mac-catalyst

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

如何在 Mac Catalyst 应用程序中监听按键操作?

我有一个简单的 iOS 游戏,我正在将其移植到 Mac 上。我希望用户能够使用键盘控制游戏。没有本机文本输入(如UITextFieldUITextView)。

如何在 Mac Catalyst 应用程序中侦听按键事件?这看起来并不微不足道。

UIKeyCommand不起作用,因为它似乎是为组合而设计的(例如cmd+c)。我可以创建一个假文本字段,但我正在寻找一种更简洁的方法来执行此操作。我想听单个字母和数字。

我可以以NSResponder::keyDown(with:)某种方式整合吗?

macos ios swift mac-catalyst

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

SwiftUI - Catalyst 半透明侧边栏

目标是在 Mac Catalyst 上制作一个半透明的侧边栏。

下面的代码给出了一个不透明的侧边栏(图 1)。

在 Mac(不是催化剂)上,侧边栏看起来不错(图 2)。

Mac Catalyst 上是否可以有一个半透明的侧边栏?

在此处输入图片说明

在此处输入图片说明

import SwiftUI

struct ContentView: View {
    var body: some View {
        
        NavigationView {
            
            //sidebar
            List {
                Label("Books", systemImage: "book.closed")
                Label("Tutorials", systemImage: "list.bullet.rectangle")
         
            }
            .background(Color.clear)

            .listStyle(SidebarListStyle())
            
            //content
            Text("Sidebar")
            .navigationTitle("Sidebar")
        }
        
        
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui mac-catalyst

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

Swift - App Store Connect 版本无法检测 Catalyst 环境

我开发了一个 iOS 应用程序,并希望通过 Catalyst 将它带到 macOS。一切正常,我可以使用以下代码优化 mac 的布局:

extension UIDevice {
    var type: DeviceType {
        #if targetEnvironment(macCatalyst)
            return .mac
        #else
        switch UIDevice.current.userInterfaceIdiom
        {
        case .phone:
            return .phone
        case .pad:
            return .pad
        default:
            return .phone
        }
        #endif
    }
} 
Run Code Online (Sandbox Code Playgroud)

我主要使用它来在 CollectionView 中显示不同的幻灯片。

在我本地的 Macbook 15(2017,Big Sur 11.0.1)上,一切正常。但是当将应用程序发布到 App Store 时,它​​被拒绝,因为它显示了 iPad - 布局。

有没有人遇到过类似的问题?还是我在归档构建时犯了一个错误?(目的地:任何 Mac(Apple Silicon、Intel) -> 产品 -> 存档)

非常感谢!

ios swift app-store-connect mac-catalyst

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

将 Xcode 中缺少的配置文件捆绑上传到 App Store/Testflight

我已经能够将应用程序的 iOS 版本上传到 App Store。\n但是当我尝试上传 MacOS 版本 (Catalyst) 时,我不断收到错误消息

\n
\n

警告 ITMS-90889:“”无法与 TestFlight 一起使用,因为 \xe2\x80\x9cTradeFlags.app\xe2\x80\x9d 处的捆绑包缺少配置文件。主要捆绑包预计将具有配置文件,以便有资格参加 TestFlight。”

\n
\n

我在其他帖子中看到需要重新下载配置文件,我就是这样做的。\n检查 Xcode -> 首选项 -> 帐户 -> 管理证书,我看到在生成新版本时添加了所有新版本。

\n

首选项-Xcode-ManageCerts

\n

但当我尝试将构建重新提交到 App Store 时,它​​仍然给出与上面相同的错误。

\n

我对下一步该做什么失去了理智。谁能建议下一步做什么?

\n

xcode testflight mac-catalyst

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

UIActivityViewController finishWithItemsHandler 函数未在 MacOS 应用程序中调用

背景

shareImage()下面代码中的函数启动UIActivityViewController并共享图像,例如发送到消息或保存到照片。

图像共享后,UIActivityViewController完成并调用该completionWithItemsHandler函数activityComplete()

该代码在 iOS / iPadOS / MacOS 上运行良好,符合预期并共享图像,但在 MacOS 上,该completionWithItemsHandler函数activityComplete()永远不会被调用,并使用标志确认print("Share complete.")

Xcode 会记录以下输出: Scene destruction request failed with error: (null)


问题

导致该completionWithItemsHandler函数activityComplete()无法在 MacOS 上调用的问题的原因是什么?如何在代码中纠正此问题?


代码

注意:根据答案添加了两行更新。

import UIKit

class ViewController: UIViewController {

    var shareButton = UIButton(type: UIButton.ButtonType.custom)
    var activityImage: UIImage!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Create share button
        shareButton.setTitle("Share", for:UIControl.State())
        shareButton.setTitleColor(.white, for: UIControl.State())
        shareButton.backgroundColor = .purple …
Run Code Online (Sandbox Code Playgroud)

macos ios uiactivityviewcontroller swift mac-catalyst

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