ZISIRU

プログラム

【?】ヘルプボタンとポップオーバー

macOS 15(Sequoia)では、helpButton()モディファイアを使用するのが最も簡単な方法です。以下のようなコードで実装できます:ポイント:Image(systemName: "questionmark.circle")でシ...
プログラム

インポート、エクスポート系

インポートNSOpenPanel より詳細な設定ドラッグ&ドロップも対応主要なプロパティエクスポートmacOSの新規テキストエディット(TextEdit.app)方法1: AppleScriptを使う方法2: 一時ファイルを作成してText...
プログラム

extension

extensionとは既存の型(クラス、構造体、列挙型、プロトコル)に、元のソースコードを変更せずに新しい機能を追加できる仕組みです。基本的な使い方1. メソッドの追加2. 計算プロパティの追加4. プロトコル準拠実用例OCR関数をCGIm...
プログラム

アプリのサイズが決まる要因

要因結論から申し上げますと、コードの量(テキストとしての文字数)も影響しますが、それ以上に「リソース(画像・音声・動画)」や「ライブラリ(外部機能)」の存在がサイズを決定づける大きな要因になります。プログラムのサイズがどのように決まるのか、...
プログラム

サムネイル化

ScreenshotItem を「遅延ロード対応」に進化させるBeforeAfter(重要)👉「URLが正」「画像はキャッシュ」という構造になります。サムネイル生成(超重要)macOSではこれを使う👉CGImageSourceThumbna...
プログラム

バンドルフォルダ(同梱ファイルとか)

macOSアプリが使えるフォルダは大きく5種類あります。アプリバンドル内(読み取り専用)Application Support(永続データ)Caches(キャッシュ・一時的)tmp(一時ファイル・超短命)ユーザーが明示的に選択したフォルダ(...
プログラム

Listメモ

Listで選択された要素の取得List(_:selection:)+Identifiable.IDを使うモデルView選択された「実体」を取得複数選択の場合実体取得「クリック時に即処理したい」場合onChangeを使う選択された要素の削除の...
プログラム

サンドボックス設定が欲しいメソッド

設定画面Xcode → Target→プロジェクト名 →Signing & CapabilitiesNSSavePanel / NSOpenPanel☑User Selected File☑ Read☑ WriteApp Store Con...
プログラム

ウィンドウ関係(macOS)

マルチディスプレイ時の問題点① マルチディスプレイの座標体系は “左上原点ではない”macOS はこういう座標体系になっている:例:→ディスプレイの frame は絶対座標(グローバル座標)なので、macOS が再配置すると値が変動し得る。...
プログラム

描写関係

最小キャンバスの作成例SwiftUI 側(中間処理)updateNSView()が呼ばれるタイミング1.監視対象のプロパティが変更された時あなたのコードでは以下が監視されています:2.親ビューが再描画された時3.ビューが再表示された時ウィン...