标签: uikitformac

如何在“UIKit for Mac”平台上使用 SwiftUI 打开文件对话框?

NSOpenPanel 在“UIKit for Mac”平台上不可用:https : //developer.apple.com/documentation/appkit/nsopenpanel

如果 Apple 不提供内置方式,我猜有人会基于 SwiftUI 和FileManager创建一个库,该库显示选择文件的对话框。

macos swift swiftui uikitformac mac-catalyst

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

Catalyst 应用程序上的蓝色突出显示/对焦环

我目前正在使用 Project Catalyst 将我的 iOS 应用程序移植到 macOS。

我的所有文本字段、文本视图和表格视图在活动时都有一个蓝色轮廓。

我在最近的测试版中的 Apple Catalyst 应用程序(例如新闻)中注意到了它,所以我希望它只是一个错误。

有没有人找到任何方法来删除它?

macos xcode uikit swift uikitformac

11
推荐指数
2
解决办法
2072
查看次数

UIDatePicker 在 macCatalyst 中不起作用(Xcode 11 Beta 5)

我们正在使用 xcode 11 beta 5 中的催化剂 swift 将我们的 iOS 应用程序转换为 macCatalyst 兼容。

我们遇到了默认 DatePicker 未显示在窗口中的问题。

我正在为 mac 尝试这个解决方案,它会在视图中添加日期选择器,但我想要另一个合适的解决方案。还有什么建议吗?

func datepickerWillLoad() {
        self.datePicker.datePickerMode = .date
        self.datePicker.maximumDate = Date()
        self.datePicker.backgroundColor = UIColor.Theme.lightBackground
        self.datePicker.setValue(UIColor.Theme.whiteColor, forKeyPath: "textColor")
        self.datePicker.addTarget(self, action: #selector(didChangedDatePickerValue), for: .valueChanged)

        //if user open picker and without change click on done
        self.dateOfBirthTextField.addTarget(self, action: #selector(didChangedDatePickerValue), for: .editingDidEnd)

        #if targetEnvironment(macCatalyst)
            datePicker.frame = CGRect(x: 0, y: self.view.frame.height - 200 , width: self.view.frame.width, height: 200)
            self.view.addSubview(datePicker)
        #else
            self.dateOfBirthTextField.inputView = datePicker
        #endif
    }
Run Code Online (Sandbox Code Playgroud)

catalyst uidatepicker swift xcode11 uikitformac

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

Xcode 11无法识别静态库的体系结构:MacCatalyst(又名UIKitForMac)

在对2019年的WWDC公告感到兴奋之后,我尝试使用Xcode 11.0 beta针对MacOS编译现有的iOS应用程序。不幸的是,它没有按预期进行。

Xcode说我的静态库是为<unknown>体系结构构建的:

为Mac的UIKit构建,但是为<未知>构建链接库'libssl.a'。您可能需要限制在目标编辑器中链接此库的平台。

Xcode屏幕截图

但是当我检查静态库时,我可以看到它们确实包含所需的体系结构x86_64在此处输入图片说明

我相信这个问题可能与Xcode Beta错误有关。有人对此有想法吗?

macos static-libraries ios uikitformac mac-catalyst

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

Xcode 11 Beta 3,构建错误“Unknown attribute 'State'”、“Use of undeclared type 'View'”等

我使用 SwiftUI 使用 Xcode 11 的第二个测试版构建了一个应用程序,并且一切正常,但是现在,使用第三个测试版,该应用程序甚至没有构建。我收到诸如“使用未声明的类型‘视图’”、“未知属性‘状态’”等错误。我该怎么办?是我的代码有问题还是只是一个错误?

问题是当我尝试构建应用程序以在我的 Mac 上运行时(使用 UIKit for Mac)

@State var score = 0
Run Code Online (Sandbox Code Playgroud)

错误是“未知属性‘状态’”

struct ContentView : View {
    /*...*/
}
Run Code Online (Sandbox Code Playgroud)

错误是“使用未声明的类型‘视图’”

macos swift swiftui xcode11 uikitformac

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

Xcode 11-在催化剂快速中禁用调整大小模式

我们正在使用Xcode 11中的Catalyst 将基于Swift的iOS应用转换为Mac兼容。

用户调整应用程序窗口大小时,我们在UI中遇到问题。那么我们可以禁用调整大小模式并为应用程序窗口提供修复框架吗?

swift xcode11 uikitformac mac-catalyst

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

在Mac版UIKit(Catalyst)中检测单个修改键更改

我正在使用Mac的UIKit(也称为Mac的iPad AppsProject Catalyst)在MacOS上移植iOS应用。

该应用使用keyCommandsfromUIKit来检测单个修饰键的按下:

UIKeyCommand(input: "", modifierFlags: .shift, action: #selector(singleShift))
Run Code Online (Sandbox Code Playgroud)

这段代码可在带有外部键盘的iPad上完美运行,我会触发每个事件吗?按。但是,这在MacOS上不起作用,尽管单个非修饰符事件和修饰符+非修饰符组合起作用。

如何实现所需的行为并获得有关单个修饰键事件的通知?

还是我应该放弃UIKeyCommand并尝试UIGestureRecognizer

macos ios swift uikitformac mac-catalyst

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

如何在 Catalyst 应用程序中将搜索栏放入 NSToolbar?

我已经看到一些 Catalyst 应用程序向 NSToolbar 添加了一个搜索栏,我想知道我如何才能做到这一点。我是否必须导入 AppKit/Cocoa 才能获得 NSSearchField 和实际的 NSToolbar?或者我没有看到 UISearchBars 有什么方法吗?任何帮助都会很棒,谢谢。

我曾尝试导入 AppKit 和 Cocoa(使用捆绑加载器),但我认为我做得不对。如果有人有关于如何执行此操作的可靠指南,请链接它。

我还尝试使用 UISearchBar 的自定义视图创建 UIBarButtonItem,它最终不会呈现任何内容。(可以在下面找到)

这是在 itemIdentifier.rawValue 的 switch case 中找到的(在工具栏 itemForIdentifier 函数中)

let search = UISearchBar()
search.sizeToFit()
let button = UIBarButtonItem(customView: search)
button.width = 100
let toolbarItem = NSToolbarItem(itemIdentifier: itemIdentifier, barButtonItem: button)
toolbarItem.isBordered = true
toolbarItem.isEnabled = true
return toolbarItem
Run Code Online (Sandbox Code Playgroud)

macos swift uikitformac mac-catalyst

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

为UIKitForMac构建,但链接为macOS构建的.tbd

我试图编译我的iOS应用程序以在macOS上运行,并且选中Mac复选框后,在编译时出现此错误:

d:为UIKitForMac构建,但是在为macOS构建的.tbd中链接,文件'/Users/jan/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/用于架构x86_64的Library / Frameworks // GLKit.framework / GLKit.tbd'

知道这意味着什么以及如何解决吗?

xcode11 uikitformac

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

Mac Catalyst 是否支持 UIActivityViewController?

我正在尝试将我们的应用程序移植到 Mac。但似乎适用于 iOS/iPadOS 的内容并没有出现在 Mac 应用程序上。根本没有任何弹出窗口。

let activityController = UIActivityViewController(activityItems:items, applicationActivities:nil)

activityController.setValue(NSLocalizedString("App Name", comment:""), forKey:"subject")
activityController.modalPresentationStyle = .popover

let popoverController = activityController.popoverPresentationController

if popoverController != nil {
      popoverController!.barButtonItem = sender
      popoverController!.permittedArrowDirections = .down
}

self.present(activityController, animated:true, completion:nil)
Run Code Online (Sandbox Code Playgroud)

看到一条可能相关的错误消息:

setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
Run Code Online (Sandbox Code Playgroud)

我在沙箱中尝试了各种设置,但没有很好的结果。

PS:删除这一行后得到它的工作:activityController.setValue(NSLocalizedString("App Name", comment:""), forKey:"subject")

显示的选项也取决于。例如,如果项目中有字符串和图像,则不会显示“保存到照片”。

uikit ios swift uikitformac

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

如何编译与 UIKit For Mac/Catalyst 一起使用的第 3 方库?

如果您尝试在 iOS 13 项目中使用 3rd 方库(使用 make 或 cmake 编译)并打开“UIKit For Mac”选项,Xcode 将对该库不满意。它会抱怨提供的库是为错误的架构编译的(如果您将其指向 iphoneos 版本)。或者,它会抱怨它是为错误的平台编译的(如果您将其指向模拟器或 Mac 版本)。我需要在 Makefile 中指定哪些设置才能使 Xcode 接受“UIKit For Mac”选项下的库?

ios uikitformac

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

我可以在 Mac Catalyst iOS 应用程序上禁用窗口大小调整功能吗

我正在迁移我的 iOS 应用程序以支持 MacCatalyst,但我想防止用户调整窗口大小。

你有什么建议吗?

macos ios uikitformac mac-catalyst

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

在 Mac 版 UIKit 中右键单击

我有一个 iPad 应用程序,可以轻松移植到 Mac。

我正在使用触摸开始/移动/结束,它移植得很好,但我想在 Mac 上的 iOS 应用程序上使用右键单击。

如何在 UIKit for Mac 应用程序中注册右键单击?

ios uikitformac

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