Swift

UISceneを使ったアプリをSpotlightから開いた時に呼ばれるデリゲートメソッド

iOS 13から追加されたUISceneを使用していると、Spotlightで検索した結果からアプリを開いた時に呼ばれるデリゲートがUIApplicationDelegateからUISceneDelegateに変わります。 iOS 13 import CoreSpotlight // UISceneDelegate func scene(_ scene: UIScene…

Mac CatalystでUIAlertControllerをシートとして表示する

確認バージョン:Xcode 11.3 let alertController = UIAlertController(title: "Alert", message: "", preferredStyle: .alert) alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { _ in // handle })) present(alertContro…

Mac Catalyst環境でのみコードを無効化・有効化する

#if !targetEnvironment(macCatalyst) // macOS環境で無効化するコード #endif #if targetEnvironment(macCatalyst) // macOS環境で有効化するコード #endif developer.apple.com

WWDC19 とりあえず見たいセッションリスト

概要 Keynote Platforms State of the Union Xcode What’s New in Xcode 11 Getting Started with Xcode Adopting Swift Packages in Xcode Debugging in Xcode 11 Testing in Xcode Creating Great Localized Experiences with Xcode 11 Great Developer Ha…

MapKitとCoreLocationで現在地の地図を表示する

Xcode 9.2 / Swift 4.0.3 MapKit 地図を表示する CoreLocation 現在地を取得 MapKit + CoreLocation 現在地の地図を拡大して表示する 地図上の現在地にピンをつける 現在地情報はシミュレーターのデフォルト値を使用しています。 MapKit 地図を表示する impo…

try! Swift 2018 Tokyoに参加しました | Day 1

www.tryswift.co try! Swift 2018 Tokyoに参加したので各セッションのスライドなどをまとめます。 2016, 2017に引き続き今年もniwatakoさんが聞き起こしをしてくださってるので細かいことはそちらを参照するといいと思います。 niwatako.hatenablog.jp 裏 Sw…

macOS appのCloudKitでカスタムコンテナを使う時に気をつけること

環境:Xcode 8.3.3 / Swift 3.1 追記 デフォルトコンテナとカスタムコンテナが一致している場合はCKContainer.default()が使えて、 一致していない場合はコンテナ名を指定する必要がある、、、ということでした。 問題 macOS appでCloudKitを使う際、Capabil…

NSOutlineViewのNSTableCellViewを編集状態にする方法

View basedなNSOutlineViewでダブルクリックされたセルを編集状態にする方法です。 NSOutlineViewを継承してfunc mouseDown(with event: NSEvent)を オーバーライドする必要があります。 class MyOutlineView: NSOutlineView { override func mouseDown(with…

システムアイコンのNSImageを作る方法

Finderで表示されるフォルダーのアイコンなどを作る方法。 let folderIcon: NSImage = NSWorkspace.shared().icon(forFileType: NSFileTypeForHFSTypeCode(OSType(kGenericFolderIcon))) kGenericFolderIconを変更すれば色々なアイコンを取得できます。 元と…

macOS app FullScreen時にToolbarを隠す

画像のようなToolbarを持つアプリをFullScreenにした時に Toolbarを隠すにはNSWindowDelegateを設定します。 // NSWindowDelegateを設定 class WindowController: NSWindowController { override func windowDidLoad() { super.windowDidLoad() window?.dele…

指定したURLをFinderで開く

コンテキストメニューでよくみかけるShow in Finderを実装する方法です。 let url: URL! = URL(string: fileOrDirectoryPath) NSWorkspace.shared().activateFileViewerSelecting([url]) ディレクトリを指定した場合はopenでも開けますが、 ファイルを指定し…