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

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

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 

More from my site

  • アラートダイアログ上のWebViewに世界地図を表示 v2bアラートダイアログ上のWebViewに世界地図を表示 v2b
  • アラートダイアログ上のWebViewに円グラフを表示アラートダイアログ上のWebViewに円グラフを表示
  • アラートダイアログでMarkdownをプレビュー v3aアラートダイアログでMarkdownをプレビュー v3a
  • アラートダイアログ上にWebViewでCesiumを用いて地球儀上に地図を表示アラートダイアログ上にWebViewでCesiumを用いて地球儀上に地図を表示
  • アラートダイアログ上のWebViewでGio.jsを用いて地球儀+データアニメーション表示 v2aアラートダイアログ上のWebViewでGio.jsを用いて地球儀+データアニメーション表示 v2a
  • アラートダイアログ上にWebViewでChart.jsを表示(Pie Chart) v2アラートダイアログ上にWebViewでChart.jsを表示(Pie Chart) v2
Posted in dialog | Tagged 10.13savvy 10.14savvy 10.15savvy NSAlert NSImage NSImageNameComputer NSRunningApplication NSURL NSWindowDocumentIconButton | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *


Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'ZeroSpam\Modules\Comments\Comments' does not have a method 'enqueue_davidwalsh' in /home/piyomaru/piyocast.com/public_html/as/wp-includes/class-wp-hook.php on line 287

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

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

Google Search

Popular Posts

  • Numbersで選択範囲のセルのデータを取得して重複データを抽出
  • 文字種類変換(ASOC)
  • 【基礎】AppleScriptの実行を(操作により)中断する
  • Keynoteで全スライドのタイトルアイテムの高さを統一
  • 文字置換 v2
  • Numbersで指定の2つの書類のデータのdiffを取る
  • JPEG画像の破損チェック
  • 文字エンコーディングを自動判別してファイル読み込み v1.2.1
  • Bluetoothデバイスのバッテリー残量を取得 v3
  • iCloud Driveフォルダへのパスを求める
  • Evernoteがv10.0でElectronベースのWebブラウザ的なアプリに
  • Script Debugger v8 日本語対応中
  • iTunesライブラリ中のアートワークをすべてJPEGで書き出し v2
  • 指定フォルダ内のファイルのうち、指定拡張子リストに入っているものをすべて取得してフルパスを返す
  • mouseClickを用いて指定座標をクリック
  • macOS 10.15beta関連
  • 指定フォルダ以下のすべてのファイルとフォルダ名から絵文字を除去する v2
  • 指定文字コードでファイル書き出し(UTF-8)v2
  • 指定名称のアプリケーションをフルスクリーン表示
  • Numbersの表を回転

Tags

10.11savvy (1109) 10.12savvy (1249) 10.13savvy (1389) 10.14savvy (514) 10.15savvy (305) 11.0savvy (114) CotEditor (48) Finder (43) iTunes (25) Keynote (62) NSAlert (59) NSAlertSecondButtonReturn (16) NSArray (50) NSBitmapImageRep (20) NSBundle (19) NSButton (33) NSColor (48) NSDictionary (26) NSFileManager (23) NSFont (18) NSImage (40) NSJSONSerialization (21) NSMutableArray (61) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (55) NSScreen (30) NSScrollView (22) NSString (114) NSURL (93) NSURLRequest (22) NSUTF8StringEncoding (30) 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
  • JSON
  • 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年3月
  • 2021年2月
  • 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