property list key LSMinimumSystemVersion
property list key UIApplicationSupportsTabbedSceneCollection
最新英文文章
技术
你完全不用费任何力气,即可让你 iPad App 的 Mac 版本支持 macOS 中的许多系统功能,其中包括:
App 的默认菜单栏
支持触控板、鼠标和键盘输入
支持调整窗口大小和全屏显示
Mac 风格的滚动条
拷贝和粘贴支持
拖放支持
支持系统触控栏控件
此外,你还可以扩展你的 App 来利用更多系统功能。
重要信息
用 Mac Catalyst 构建的 Mac App 只能使用 Mac Catalyst 中标记为可用的 AppKit API,例如 NSToolbar
和 NSTouchBar
。Mac Catalyst 不支持访问不可用的 AppKit API。
App 的 Mac 版本带有一个标准菜单栏。你可以通过使用 UIMenuBuilder
添加和移除菜单项,对其进行自定。要进一步了解,请参阅“向菜单栏和用户界面中添加菜单和快捷键”。
Mac App 通常会显示一个偏好设置窗口,供用户管理特定于 App 的设置。用户可以通过选择 App 菜单,然后选择菜单栏中的“偏好设置”菜单项来查看这个窗口。如果你的 App 具有设置套装,系统会自动为你的 App 提供一个偏好设置窗口。要进一步了解,请参阅“显示偏好设置窗口”。
采用分屏浏览控制器的 iPad App 在 macOS 中运行时,可以获得 Mac 风格的垂直分屏浏览视图。但是,要想让你的 iPad App 更像 Mac 的原生 App,你需要应用半透明效果来虚化桌面,使桌面融入主视图控制器的背景中。为此,请将分屏浏览控制器的 primaryBackgroundStyle
设置为 UISplitViewController.BackgroundStyle.sidebar
,如摘录 1 中所示。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let splitViewController = window!.rootViewController as! UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem
// Add a translucent background to the primary view controller.
splitViewController.primaryBackgroundStyle = .sidebar
splitViewController.delegate = self
return true
}
无论是选择文本栏还是移动窗口,Mac 用户都要依赖指针与 App 进行交互。在用户将指针移动到 UI 元素上时,一些元素的外观会发生改变。例如,在指针移动到链接上时,网页浏览器会高亮显示链接。
要检测用户何时将指针移到你 App 中的某个视图上,请将 UIHoverGestureRecognizer
添加到该视图中。这样一来,你的 App 便能知道指针何时进入或离开该视图,或何时在该视图上移动。
class ViewController: UIViewController {
@IBOutlet var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let hover = UIHoverGestureRecognizer(target: self, action: #selector(hovering(_:)))
button.addGestureRecognizer(hover)
}
@objc
func hovering(_ recognizer: UIHoverGestureRecognizer) {
switch recognizer.state {
case .began, .changed:
button.titleLabel?.textColor = #colorLiteral(red: 1, green: 0, blue: 0, alpha: 1)
case .ended:
button.titleLabel?.textColor = UIColor.link
default:
break
}
}
}
property list key LSMinimumSystemVersion
property list key UIApplicationSupportsTabbedSceneCollection
鸟牌是什么牌子的衣服 | 喝黑枸杞有什么好处 | 大小休是什么意思 | 通灵是什么意思 | 蚕长什么样 |
四级士官是什么级别 | ABA是什么植物激素 | 什么叫卒中 | 腹泻吃什么 | 肩膀疼挂什么科 |
性有什么好处和坏处 | 阴蒂痛是什么原因 | 5月7日什么星座 | 三叉神经痛挂什么科就诊 | 此生不换什么意思 |
左侧肚脐旁边疼是什么原因 | 城隍爷是什么神 | 猪蹄炖什么好吃 | 生命的本质是什么 | 梦见亲人哭是什么征兆 |
求嗣是什么意思hcv8jop8ns4r.cn | 翊读什么hcv7jop9ns0r.cn | 麻是什么植物zsyouku.com | 疤痕憩室什么意思gangsutong.com | 木棉花什么时候开花hcv8jop9ns1r.cn |
腹泻吃什么食物好hcv8jop9ns6r.cn | 冷鲜肉和新鲜肉有什么区别luyiluode.com | 用一什么就什么造句hcv8jop6ns6r.cn | 女性外阴痒用什么药beikeqingting.com | 心慌胸闷是什么原因sscsqa.com |
早孕反应什么时候开始mmeoe.com | 短阵房速是什么意思hcv8jop8ns3r.cn | 感冒发烧挂什么科室hcv9jop4ns9r.cn | 什么食物补血效果最好最快hcv8jop8ns4r.cn | 什么是双规hcv8jop1ns7r.cn |
阴茎中途疲软吃什么药hcv7jop6ns7r.cn | 肉苁蓉与什么搭配好hcv8jop8ns3r.cn | 嗓子痛吃什么好hcv9jop6ns7r.cn | 肛门坠胀是什么原因imcecn.com | icd医学上是什么意思hcv7jop5ns3r.cn |