I wrote brand-new ebook about AppleScriptObjC (AppleScript GUI App on Xcode) in Japanese.
AppleScript+Xcode GUI App Source Collection (Includes 170 Xcode Projects)
https://piyomarusoft.booth.pm/items/7090396
For those who want to develop macOS GUI apps using AppleScript and Xcode (AppleScriptObjC). 382-page PDF + Zip Archive
This book puts an end to the fragmented information on the web by providing 170 practical Xcode projects that are guaranteed to work. These projects have been confirmed to build as Universal Binaries that run on both Apple Silicon and Intel Macs. We have minimized complex jargon and technical explanations to focus thoroughly on “code that works.”
Through 30 chapters of simple and easy-to-understand examples covering the manipulation of major GUI components, you can efficiently acquire practical know-how cultivated through Mac App Store app development. There’s no longer a need to rely on uncertain code generated by AI like ChatGPT.
Aimed at those who understand the basics of AppleScript and Xcode, this book will be a one-of-a-kind “working blueprint” to take your Mac app development to the next level.
Table of Contents
■Chapter 1: Let’s Get Started!
- Installing Xcode
- Installing Script Debugger
- Importing AppleScript Project Templates
- Importing AppleScript Snippets for Xcode
- About Using the Included Xcode Projects
- How to Look Up Information
- Navigating Header Files
â– Chapter 2: Windows
-
Window Basics
- Different Creation Methods for Single vs. Multiple Windows
- Main Operations on Windows from AppleScript
- Events Receivable from Windows
- Structure of Window-Related Sample Projects
- Note: Handler Description and Connection Display
-
Window Operation Examples
- Detecting Window Close
- Replacing Window Content
- Centering a Window on the Screen
- Getting Window Origin Coordinates and Size
- Forcing a Window to Display + Bring to Front
- Making a Window Fullscreen
- Quitting the App When a Window is Closed
- Forcibly Closing a Window
- Changing Window Stacking Order
- Colored Windows
- Translucent (Frosted Glass Effect) Windows
- Transparent Windows
-
Panel/HUD Panel Operation Examples
- Panels and HUD Panels
-
Dark Mode Support
- Making Windows, Menus, etc. Dark Mode Compatible
â– Chapter 3: Buttons
-
Button Basics
- What Buttons Can Do
- Main Operations on Buttons from AppleScript
- Events Receivable from Buttons
- Structure of Button-Related Sample Projects
- Note: Handler Description and Connection Display
-
Push Buttons + Others
- Detecting Button Clicks
- Identifying Clicks on Multiple Buttons
- Controlling the Enabled State of Multiple Buttons
- Identifying Clicks on Multiple Toolbar Buttons
- Dynamic Button Creation
- Dynamic Button Creation (Scroll View)
- Dynamic Button Creation/Deletion
- Receiving Events with an External Script
- Specifying Color for Button Title Text
-
Popup Buttons
- Initializing Popup Buttons
- Getting the Selected Item from a Popup Button
-
Combo Boxes
- Initializing Combo Boxes
- Adding Input Values to a Combo Box
- Getting the Value of a Combo Box
- Clearing the Selection of a Combo Box
-
Segmented Controls
- Identifying Selection in a Segmented Control
- Enabling/Disabling a Segmented Control
-
Switches
- Getting the State of a Switch
- Setting the Value of a Switch
-
Radio Buttons
- Detecting the Selected Radio Button
- Selecting an Arbitrary Radio Button
-
Checkboxes
- Creating Checkboxes
- Setting the Value of a Checkbox
- Getting the Value of a Checkbox
-
Toolbar Buttons
- Identifying Clicks on a Segmented Control in a Toolbar
- Changing the Toolbar Display Mode
- Switching Between Multiple Toolbars
-
Detecting Button Double-Clicks
- Creating a Class for Double-Click Detection
â– Chapter 4: Text Fields
-
Text Field Basics
- What Text Fields Can Do
- Main Operations from AppleScript
-
Text Fields
- Reading from and Writing to a Text Field
- Reading/Writing with a Placeholder
- Showing/Hiding a Text Field
- Detecting the End of Editing in a Text Field
- Forcing Text Input Mode (Hiragana/Romaji)
- Truncating Text Field Content
-
Secure Text Fields
- Getting the Content of a Secure Text Field
- Setting Text in a Secure Text Field
-
Wrapping Text Fields
- Setting Text to a Field
- Getting the Text Content of a Field
- Setting Formatted Text to a Field
- Getting the Formatted Text Content of a Field
-
Steppers
- Manipulating a Field’s Value with a Stepper
â– Chapter 5: Text Views
-
Text Views
- Getting Formatted Text from a Text View
- Setting Formatted Text in a Text View
- Setting Formatted Text with Modified Line Spacing in a Text View
- Getting Plain Text from a Text View
- Setting Plain Text in a Text View
- Getting the Formatted Text of the Selection in a Text View
- Getting the Plain Text of the Selection in a Text View
- Loading Plain Text and Forcing Scroll to the End
- Loading Styled Text and Forcing Scroll to the End
â– Chapter 6: Date Pickers
-
Date Pickers
- Changing Date Picker Settings
- Setting the Date in a Date Picker
- Getting Date Data from a Date Picker
-
Calendar Pickers
- Setting the Date in a Calendar Picker
- Getting Date Data from a Calendar Picker
- Reference: Displaying a Calendar Picker
â– Chapter 7: Image Views
-
Image Views
- Loading an Image into an Image View
- Saving an Image from an Image View
- Taking a Photo with an iOS Device Camera and Loading It
- Loading an Image into an Image View + Applying a Filter (CI Filter)
-
Color Wells
- Setting Color Information in a Color Well
- Getting Color Information from a Color Well (RGB Values)
â– Chapter 8: Path Controls
-
Path Controls
- Setting Path Information in a Path Control
- Getting Path Information from a Path Control
- Setting File Types that Can Be Received
- Setting to Receive Folders Only
â– Chapter 9: Sliders
-
Sliders
- Sharing a Slider’s Value Among Multiple Components
-
Circular Sliders
- Sharing a Slider’s Value Among Multiple Components
-
Level Indicators
- Displaying a Numerical Value with a Level Indicator
â– Chapter 10: Progress Indicators
-
Determinate Progress Bars
- Animating a Progress Bar
- Displaying a Progress Bar on the Dock Icon
â– Chapter 11: Table Views
-
Table View Overview
- Methods for Creating Table Views
-
Cell-Based Table Views
- Table View for Displaying Text
- Table View for Displaying Text + Level Indicators
- Table View for Displaying/Editing with a Popup
- Table View for Various Display/Editing
- DATASOURCE Format Not Recommended for Use
-
View-Based Table Views
- Text-Based Table View
- Table View with Text + Popup Menu
â– Chapter 12: Outline Views
-
Outline Views
- Creating Fixed Data for a Tree Controller
- Getting the Data of the Selected Row
- Editing Tree Data on the Screen
- Displaying Tree Data + Fixed Popup
- Displaying Tree Data + Variable Popup
â– Chapter 13: Split Views
-
Split Views
- Switching the Divider Direction of a Split View
- Loading a View into a Split View
-
Tab Views
- Switching the Displayed Tab in a Tab View
- Changing the Border Display of a Tab View
â– Chapter 14: Menus
-
Menus
- Using Menus
-
Dock Menus
- Using Dock Menus
-
Status Bar Menus
- Using Status Bar Menus
- Changing the Title and Icon
â– Chapter 15: Popovers
-
Popovers
- Displaying a Popover
- Closing a Popover
- Calculating Display Position from a Segmented Control
â– Chapter 16: Address Book People Picker
-
Address Book People Picker View
- To Use Address Book Data
- Displaying the Address Book and Getting Selected Data
â– Chapter 17: AVKit Player View
-
AVKit Player View
- Movie Playback
- Movie Playback + Cueing to a Fixed Second
- Detecting Silent Parts in a Movie + Cueing to Each Location
â– Chapter 18: MapKit View
-
MapKit View
- Map View Basics
- Displaying an Address in a Map View
- Displaying a Pin for a Specified Address on the Map
- Making the Map Display Type Changeable
â– Chapter 19: OSAKit View
-
OSAKit View
- Creating a Simple Script Editor
- Loading and Executing AppleScript
- Loading AppleScript and Getting the Execution Result
â– Chapter 20: PDFKit View
-
PDF View + Thumbnail View
- Displaying PDF Content and Thumbnail Images
â– Chapter 21: WebKit View
-
WebKit View
- Web View Basics
- Displaying Web Content â‘ (Online Content)
- Displaying Web Content ② (Local HTML or String)
-
Checking Internet Connection
- Checking Internet Connection
-
Downloading Web Content
- Downloading Web Content
â– Chapter 22: Services
-
Services
- Services Basics
- Xcode Project that Constitutes a Service
- Calling a Service Created with AppleScript
â– Chapter 23: Document-Based Apps
-
Document-Based App Basics
- Basics of Document-Based Apps
-
Explanation of Document-Based Apps
- Running a Document-Based App
- Document Open → Button Click Action Log
- Location of Internal Event Handling Scripts
- Processing When a Document is Opened
- Processing When a Document is Saved
- Pay Attention to Remaining Memory During Development/Operation of a Document-Based App
â– Chapter 24: External App Control
-
External App Operation
- Basics of External App Operation
- Settings for an External App Operation Project
- Calling an External App Operation Script
-
External App Operation (Sandboxed Version)
- External App Operation Settings within a Sandboxed App â‘
â– Chapter 25: Making Apps Scriptable
-
Basics of Making Apps Scriptable
- Basics of Scriptable Apps
-
Creating an AppleScript Dictionary (sdef)
- First, Let’s Observe an Actual AppleScript Dictionary!
- A Look at the Contents of an AppleScript Dictionary
- Structure of an AppleScript Dictionary
- Structure of an AppleScript Dictionary/Command
- Items that Constitute Each Suite of an App
- Reference: Apple Events Codes of Major Apps
- Items to Decide When Creating a Command
- Creating a Minimal sdef with One Command
-
Adding an sdef to an Xcode Project
- AppleScript Support Work in an Xcode Project
- Adding a Program to be Called from AppleScript
- Processing the Command Execution Part
-
Calling from an External Source for Confirmation
- Getting Application Properties
- Executing the “test command” Command
- Returning a General Record
- Returning App-Reserved Label Attribute Values and a General Record
â– Chapter 26: App Icon
-
Changing the Icon on the Dock
- Dynamically Changing the Dock Icon
-
Displaying a Badge on the Dock Icon
- Displaying a Badge on the Dock Icon
â– Chapter 27: Dialogs
-
Text Input with the
display dialog
Command- Basic Text Input with the
display dialog
Command
- Basic Text Input with the
-
Text Input Dialog + Caret Control
- Text Input Dialog + Caret Control
â– Chapter 28: Animation
-
Displaying Animation with Core Animation
- Setting up a Core Animation Layer
- Displaying Animation with Core Animation
â– Chapter 29: Miscellaneous
-
Xcode Log Output
- Outputting Logs to the Xcode Log Area
-
Customizing the About Screen
- Creating Credits.rtf
- Automatic Display in the About Menu
- Copyright Notation Example in the About Menu
-
Logging Event Handlers
- Logging Various Event Handlers in Xcode
-
Droplets
- Writing a Droplet in Xcode
- Real-time Key Scanning
-
Bundles
- Getting a File in a Bundle by Name and Type
-
Localization
- Outputting Messages for Each Language
- Localizing the GUI
-
Timer Interrupts
- Timers in AppleScriptObjC
-
Data Sharing Between Multiple AppleScripts
- Calling a Sub-AppleScript from AppDelegate
- Sharing Data Between Multiple AppleScripts in an Xcode Project
- Accessing Properties of the Main Script from a Sub-Script
-
Incorporating a Script Library
- Putting a Script Library into an Xcode Project
- Execution Result of This App
-
Ticker Display
- Displaying a Ticker on a Window
- Changing the Mouse Cursor
â– Chapter 30: Components Not Covered in This Book
-
GUI Components Not Covered in This Book
- NSCollectionView
- NSBrowser
â– Afterword, Colophon