NSOpenPanel 在“UIKit for Mac”平台上不可用:https : //developer.apple.com/documentation/appkit/nsopenpanel
如果 Apple 不提供内置方式,我猜有人会基于 SwiftUI 和FileManager创建一个库,该库显示选择文件的对话框。
我目前正在使用 Project Catalyst 将我的 iOS 应用程序移植到 macOS。
我的所有文本字段、文本视图和表格视图在活动时都有一个蓝色轮廓。
我在最近的测试版中的 Apple Catalyst 应用程序(例如新闻)中注意到了它,所以我希望它只是一个错误。
有没有人找到任何方法来删除它?
我们正在使用 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) 我使用 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)
错误是“使用未声明的类型‘视图’”
我们正在使用Xcode 11中的Catalyst 将基于Swift的iOS应用转换为Mac兼容。
用户调整应用程序窗口大小时,我们在UI中遇到问题。那么我们可以禁用调整大小模式并为应用程序窗口提供修复框架吗?
我正在使用Mac的UIKit(也称为Mac的iPad Apps或Project Catalyst)在MacOS上移植iOS应用。
该应用使用keyCommands
fromUIKit
来检测单个修饰键的按下:
UIKeyCommand(input: "", modifierFlags: .shift, action: #selector(singleShift))
Run Code Online (Sandbox Code Playgroud)
这段代码可在带有外部键盘的iPad上完美运行,我会触发每个事件吗?按。但是,这在MacOS上不起作用,尽管单个非修饰符事件和修饰符+非修饰符组合起作用。
如何实现所需的行为并获得有关单个修饰键事件的通知?
还是我应该放弃UIKeyCommand
并尝试UIGestureRecognizer
?
我已经看到一些 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) 我试图编译我的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'
知道这意味着什么以及如何解决吗?
我正在尝试将我们的应用程序移植到 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")
显示的选项也取决于。例如,如果项目中有字符串和图像,则不会显示“保存到照片”。
如果您尝试在 iOS 13 项目中使用 3rd 方库(使用 make 或 cmake 编译)并打开“UIKit For Mac”选项,Xcode 将对该库不满意。它会抱怨提供的库是为错误的架构编译的(如果您将其指向 iphoneos 版本)。或者,它会抱怨它是为错误的平台编译的(如果您将其指向模拟器或 Mac 版本)。我需要在 Makefile 中指定哪些设置才能使 Xcode 接受“UIKit For Mac”选项下的库?
我正在迁移我的 iOS 应用程序以支持 MacCatalyst,但我想防止用户调整窗口大小。
你有什么建议吗?
我有一个 iPad 应用程序,可以轻松移植到 Mac。
我正在使用触摸开始/移动/结束,它移植得很好,但我想在 Mac 上的 iOS 应用程序上使用右键单击。
如何在 UIKit for Mac 应用程序中注册右键单击?
uikitformac ×13
swift ×8
macos ×7
ios ×6
mac-catalyst ×6
xcode11 ×4
swiftui ×2
uikit ×2
catalyst ×1
uidatepicker ×1
xcode ×1