创新互联IOS教程:针对Mac优化你的iPadApp

概览

你完全不用费任何力气,即可让你 iPad App 的 Mac 版本支持 macOS 中的许多系统功能,其中包括:

  • App 的默认菜单栏

  • 支持触控板、鼠标和键盘输入

  • 支持调整窗口大小和全屏显示

  • Mac 风格的滚动条

  • 拷贝和粘贴支持

  • 拖放支持

  • 支持系统触控栏控件

此外,你还可以扩展你的 App 来利用更多系统功能。

重要信息

用 Mac Catalyst 构建的 Mac App 只能使用 Mac Catalyst 中标记为可用的 AppKit API,例如 NSToolbarNSTouchBar。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 中所示。

摘录 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 便能知道指针何时进入或离开该视图,或何时在该视图上移动。

摘录 2 在指针移到按钮上时,将按钮的默认颜色更改为红色

 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  }  } }

分享标题:创新互联IOS教程:针对Mac优化你的iPadApp
文章来源:http://www.shufengxianlan.com/qtweb/news17/465667.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联