新聞中心
概覽
你完全不用費(fèi)任何力氣,即可讓你 iPad App 的 Mac 版本支持 macOS 中的許多系統(tǒng)功能,其中包括:

-
App 的默認(rèn)菜單欄
-
支持觸控板、鼠標(biāo)和鍵盤輸入
-
支持調(diào)整窗口大小和全屏顯示
-
Mac 風(fēng)格的滾動(dòng)條
-
拷貝和粘貼支持
-
拖放支持
-
支持系統(tǒng)觸控欄控件
此外,你還可以擴(kuò)展你的 App 來利用更多系統(tǒng)功能。
重要信息
用 Mac Catalyst 構(gòu)建的 Mac App 只能使用 Mac Catalyst 中標(biāo)記為可用的 AppKit API,例如 NSToolbar 和 NSTouchBar。Mac Catalyst 不支持訪問不可用的 AppKit API。
添加菜單欄項(xiàng)目
App 的 Mac 版本帶有一個(gè)標(biāo)準(zhǔn)菜單欄。你可以通過使用 UIMenuBuilder 添加和移除菜單項(xiàng),對(duì)其進(jìn)行自定。要進(jìn)一步了解,請(qǐng)參閱“向菜單欄和用戶界面中添加菜單和快捷鍵”。
顯示偏好設(shè)置窗口
Mac App 通常會(huì)顯示一個(gè)偏好設(shè)置窗口,供用戶管理特定于 App 的設(shè)置。用戶可以通過選擇 App 菜單,然后選擇菜單欄中的“偏好設(shè)置”菜單項(xiàng)來查看這個(gè)窗口。如果你的 App 具有設(shè)置套裝,系統(tǒng)會(huì)自動(dòng)為你的 App 提供一個(gè)偏好設(shè)置窗口。要進(jìn)一步了解,請(qǐng)參閱“顯示偏好設(shè)置窗口”。
為你的主視圖控制器應(yīng)用半透明背景
采用分屏瀏覽控制器的 iPad App 在 macOS 中運(yùn)行時(shí),可以獲得 Mac 風(fēng)格的垂直分屏瀏覽視圖。但是,要想讓你的 iPad App 更像 Mac 的原生 App,你需要應(yīng)用半透明效果來虛化桌面,使桌面融入主視圖控制器的背景中。為此,請(qǐng)將分屏瀏覽控制器的 primaryBackgroundStyle 設(shè)置為 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 }
在視圖中檢測(cè)指針
無論是選擇文本欄還是移動(dòng)窗口,Mac 用戶都要依賴指針與 App 進(jìn)行交互。在用戶將指針移動(dòng)到 UI 元素上時(shí),一些元素的外觀會(huì)發(fā)生改變。例如,在指針移動(dòng)到鏈接上時(shí),網(wǎng)頁瀏覽器會(huì)高亮顯示鏈接。
要檢測(cè)用戶何時(shí)將指針移到你 App 中的某個(gè)視圖上,請(qǐng)將 UIHoverGestureRecognizer 添加到該視圖中。這樣一來,你的 App 便能知道指針何時(shí)進(jìn)入或離開該視圖,或何時(shí)在該視圖上移動(dòng)。
摘錄 2 在指針移到按鈕上時(shí),將按鈕的默認(rèn)顏色更改為紅色
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 } } }
網(wǎng)頁名稱:創(chuàng)新互聯(lián)IOS教程:針對(duì)Mac優(yōu)化你的iPadApp
標(biāo)題路徑:http://www.5511xx.com/article/cddhcgj.html


咨詢
建站咨詢
