Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

タグ: NSImageNameComputer

アラートダイアログのウィンドウタイトル部分にアイコン指定

Posted on 5月 23, 2020 by Takaaki Naganoya

アラートダイアログのウィンドウタイトル部分に任意の画像をアイコンとして表示するAppleScriptです。

本来、NSWindowのタイトル部分にアイコン表示を行うワザのようです。なにか、Cocoaのバグのような仕様を使っているようです。本来、タイトル部分に直接アイコンを表示させることはできないのですが、ドキュメントのURLを指定すると、該当するパス(URL)の書類アイコンを指定する機能はあります。


▲Mac App Store上で販売中のAppleScriptで開発したアプリケーション「Kamenoko」でも、ウィンドウにアイコン表示するコードが使われています。本Scriptではなく、もっとまっとうな方法で

そこに、存在しないURLを指定すると、直後にアイコン指定できるという、、、どこで役立つのかわかりませんが、そういう方法もあるということで。

AppleScript名:アラートダイアログでウィンドウタイトル部分にアイコン指定
— Created 2020-05-08 by Takaaki Naganoya
— 2020 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

property NSAlert : a reference to current application’s NSAlert
property |NSURL| : a reference to current application’s |NSURL|
property NSImage : a reference to current application’s NSImage
property NSRunningApplication : a reference to current application’s NSRunningApplication
property NSImageNameComputer : a reference to current application’s NSImageNameComputer
property NSWindowDocumentIconButton : a reference to current application’s NSWindowDocumentIconButton

property returnCode : 0

–Get Computer Icon
set anImage to getComputerIcon() of me
set aMainMes to "TEST"
set aSubMes to "Window title icon TEST"
set wTitle to "Window Title"

set paramObj to {myMessage:aMainMes, mySubMessage:aSubMes, myWinTitle:wTitle, myImage:anImage}
–my displayAlertDialog:paramObj

my performSelectorOnMainThread:"displayAlertDialog:" withObject:(paramObj) waitUntilDone:true

on displayAlertDialog:paramObj
  set aMainMes to myMessage of paramObj
  
set aSubMes to mySubMessage of paramObj
  
set anImage to myImage of paramObj
  
set aWinTitle to myWinTitle of paramObj
  
  
— set up alert  
  
set theAlert to NSAlert’s alloc()’s init()
  
tell theAlert
    its setMessageText:aMainMes
    
its setInformativeText:aSubMes
    
its addButtonWithTitle:"OK"
    
its addButtonWithTitle:"Cancel"
    
–its setIcon:anImage
    
set aWin to its |window|()
  end tell
  
  
aWin’s setTitle:aWinTitle
  
  
aWin’s setRepresentedURL:(|NSURL|’s URLWithString:"WindowTitle") –Dummy URL
  (
aWin’s standardWindowButton:(current application’s NSWindowDocumentIconButton))’s setImage:(anImage)
  
  
— show alert in modal loop
  
NSRunningApplication’s currentApplication()’s activateWithOptions:0
  
my performSelectorOnMainThread:"doModal:" withObject:(theAlert) waitUntilDone:true
  
if (my returnCode as number) = 1001 then error number -128
end displayAlertDialog:

on doModal:aParam
  set (my returnCode) to aParam’s runModal()
end doModal:

on getComputerIcon()
  return NSImage’s imageNamed:(NSImageNameComputer)
end getComputerIcon

★Click Here to Open This Script 

Posted in dialog | Tagged 10.13savvy 10.14savvy 10.15savvy NSAlert NSImage NSImageNameComputer NSRunningApplication NSURL NSWindowDocumentIconButton | Leave a comment

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular Posts

  • 画面上の指定座標にマウスカーソルを強制移動させてクリック
  • AppleScript disassembler
  • ディスプレイの設定切り替えをAppleScriptでも行えるSwitchResX
  • 配列の要素数を取得する
  • 【基礎】AppleScriptの実行を(操作により)中断する
  • LAN上のHDDをマウントする v2
  • macOS 10.14 AppleScriptリリースノート
  • mouseClickを用いて指定座標をクリック
  • Numbersで選択中の表のセルの範囲を背景色で頻度集計
  • ファイルパスの変換(Alias→POSIX path→NSURL→POSIX path→file→Alias)
  • CotEditorで編集中のMarkdown書類をPDFプレビュー
  • Safariで表示中のWebページの最終更新日時を取得
  • 文字置換 v2
  • (GET)国土地理院APIで現在位置の標高を取得する
  • 配列の指定要素を検索する(テキスト)
  • Keynoteの最前面のドキュメントの現在のスライドに指定月の日曜日はじまりカレンダーを表で作成
  • CIFilterとGPUImageで画像差分検出演算を比較
  • JPEG画像の破損チェック
  • 頭のいいタイマー割り込み実行
  • Elgato Stream DeckをAppleScriptでフル活用

Tags

10.11savvy (1109) 10.12savvy (1249) 10.13savvy (1384) 10.14savvy (504) 10.15savvy (295) 11.0savvy (103) CotEditor (47) Finder (43) iTunes (25) Keynote (58) NSAlert (59) NSAlertSecondButtonReturn (16) NSArray (50) NSBitmapImageRep (20) NSBundle (19) NSButton (33) NSColor (48) NSDictionary (26) NSFileManager (23) NSFont (18) NSImage (40) NSJSONSerialization (20) NSMutableArray (61) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (55) NSScreen (30) NSScrollView (22) NSString (113) NSURL (93) NSURLRequest (22) NSUTF8StringEncoding (29) NSUUID (18) NSView (33) NSWindow (17) NSWorkspace (19) Numbers (42) Pages (16) Safari (34) System Events (16) WKUserContentController (20) WKUserScript (19) WKUserScriptInjectionTimeAtDocumentEnd (17) WKWebView (21) WKWebViewConfiguration (21)

カテゴリー

  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Bluetooth
  • boolean
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • History
  • How To
  • Icon
  • Image
  • Input Method
  • Internet
  • JavaScript
  • JXA
  • Keychain
  • Language
  • list
  • Locale
  • Machine Learning
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • shell script
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC