2019-03-01から1ヶ月間の記事一覧

アラートを表示する(NSAlert)

アラートの表示 アラートを作る let alert = NSAlert() ダイアログとして表示 alert.runModal() 押されたボタンを確認 runModal()の戻り値で確認できます。 let response = alert.runModal() switch response { case .alertFirstButtonReturn: break case .a…

NSTextViewで折りたたみ

NSTextViewで折りたたみ(フォールディング)は、折りたたみたい文字のグリフをNullGlyphに置き換えることで実現できます。 下記に手順を紹介します。 折りたたむ文字列に目印をつける 折りたたみたい文字に目印となるカスタム属性を設定します。 ここではカス…

NSTextViewで文字列にリンクを設定する

任意の文字列にリンクを設定 NSTextStorageにキーがNSAttributedString.Key.linkで値がURLの属性を設定すれば任意の文字列にリンクを設定できます。 textView.string = "Link to Blog" let url = URL(string: "https://tid-a24.hatenablog.com/")! textView.…

NSPopoverを閉じる方法

BehaviorでNSPopoverの閉じる方法(挙動)を指定します。 let popover = NSPopover() popover.behavior = .transient Behaviorは3種類定義されています。 applicationDefined 開発者が動作を定義する。(閉じるボタンをつけるなど。) 自動で閉じることはない。 …

macOS appの環境設定:Escapeキーで閉じるようにする

環境設定のWindowをNSPanelにすることでEscapeキーで閉じるようにできます。 これだけでEscapeキー(または⌘-.)で閉じるようになります。

macOSの環境設定のようなレイアウトはNSGridViewで実装する

macOSの環境設定などで見かけるラベル:ユーザー入力可能なビューが規則的に並ぶレイアウトはNSGridViewを使うと楽に実装できます。 NSStackViewでも実装できないことはありませんが、 アラビア語などの右から左に読む言語へのローカライズが発生すると辛い…