date pickerによる日付選択

AppleScript名:date pickerによる日付選択
— Created 2015-08-20 by Shane Stanley
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"
use script "BridgePlus" — https://www.macosxautomation.com/applescript/apps/BridgePlus.html

if not (current application’s NSThread’s isMainThread()) as boolean then
  display alert "This script must be run from the main thread." buttons {"Cancel"} as critical
  
error number -128
end if

— create a view
set theView to current application’s NSView’s alloc()’s initWithFrame:(current application’s NSMakeRect(0, 0, 100, 200))

— create date picker
set datePicker to current application’s NSDatePicker’s alloc()’s initWithFrame:(current application’s NSMakeRect(0, 0, 100, 100))

— set style: choices are NSTextFieldAndStepperDatePickerStyle, NSClockAndCalendarDatePickerStyle, or NSTextFieldDatePickerStyle
datePicker’s setDatePickerStyle:(current application’s NSClockAndCalendarDatePickerStyle)

— set elements: choices include NSHourMinuteDatePickerElementFlag, NSHourMinuteSecondDatePickerElementFlag, NSTimeZoneDatePickerElementFlag, NSYearMonthDatePickerElementFlag, and NSEraDatePickerElementFlag
datePicker’s setDatePickerElements:((current application’s NSYearMonthDayDatePickerElementFlag) + (current application’s NSHourMinuteSecondDatePickerElementFlag as integer))

— set initial date
datePicker’s setDateValue:(current application’s NSDate’s |date|())

— get the size it needs
set theSize to datePicker’s fittingSize()

–resize the picker and view accordingly
theView’s setFrameSize:theSize
datePicker’s setFrameSize:theSize

— add the picker to the view
theView’s setSubviews:{datePicker}

— create an alert
set theAlert to current application’s NSAlert’s alloc()’s init()

— set up alert
tell theAlert
  its setMessageText:"Pick a date"
  
its setInformativeText:"Any date"
  
its addButtonWithTitle:"OK"
  
its addButtonWithTitle:"Cancel"
  
its setAccessoryView:theView
end tell

— show alert in modal loop
set returnCode to theAlert’s runModal()
if returnCode = (current application’s NSAlertSecondButtonReturn) then error number -128

— retrieve date
set theDate to ASify from (datePicker’s dateValue()) — or simply coerce to date in 10.11

–>  date "2015年8月20日木曜日 19:43:58"

★Click Here to Open This Script 

Please follow and like us:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です