« [NSPasteboard] stringForType | トップページ | [Safari]Google翻訳ページで開く »

[NSPasteboard] releaseGlobally

clearContents()は中身を初期化するが
releaseGlobally()はgeneralPasteboard()で作成したペーストボードを解放する
NSPasteboard使ったら最後に忘れず入れる

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

######ログ表示
doLogView()

property objMe : a reference to current application
property objNSString : a reference to objMe's NSString
property objNSPasteboard : a reference to objMe's NSPasteboard

property objNSNotFound : a reference to 9.22337203685477E+18 + 5807


set strSampleText to "美しい日本語" as text


####テキストをNSString
set ocidText to objNSString's alloc()'s initWithString:(strSampleText)
log ocidText as text
log className() of ocidText as text

####ペーストボードを定義
set ocidPasteboard to objNSPasteboard's generalPasteboard()
log className() of ocidPasteboard as text

####ペーストボードの内容を消去
ocidPasteboard's clearContents()
log className() of ocidPasteboard as text

####ペーストボードの変更回数
log ocidPasteboard's changeCount()


####ペーストボード名
set ocidPasteboardName to ocidPasteboard's |name|()
log ocidPasteboardName as text
log className() of ocidPasteboardName as text

####テキストを格納
ocidPasteboard's setString:strSampleText forType:(objMe's NSPasteboardTypeString)
log className() of ocidPasteboard as text

###テキストをプレーンテキストで
set ocidReadPasteboard to ocidPasteboard's stringForType:(objMe's NSPasteboardTypeString)
log ocidReadPasteboard as text
log className() of ocidReadPasteboard as text


###解放
ocidPasteboard's releaseGlobally()

###解放したのでocidPasteboardmissing valueになる
set ocidReadPasteboard to ocidPasteboard's stringForType:(objMe's NSPasteboardTypeString)
log ocidReadPasteboard as text




#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
end if
end repeat

end doLogView
#########################

|

« [NSPasteboard] stringForType | トップページ | [Safari]Google翻訳ページで開く »

NSPasteboard」カテゴリの記事