使用 Scripting Bridge 在 iPhoto 中创建相册并将图片导入到该相册中
我有一个基于文档的绘图应用程序,允许用户将最终文档保存为 JPEG 文件。每当用户保存 JPEG 时,我想将图片导入到 iPhoto 相册“MyAppName album”中。我正在使用Using Scripting Bridge,并且已将 iPhoto.h 文件添加到我的应用程序中。我还添加了 ScriptingBridge.framework
我什至在创建相册“MyAppName album”时遇到了一些真正的麻烦。
您能否向我展示以下伪代码的一些代码:
if (check whether "MyAppName album" exists) then
myalbum = "MyAppName album"
else
myalbum = create new album "MyAppName album"
end if
add picture "/Users/myusername/myfile.jpg" to myalbum
为了您的方便,我添加了下面的 iPhoto.h:
/*
* iPhoto.h
*/
#import <AppKit/AppKit.h>
#import <ScriptingBridge/ScriptingBridge.h>
@class iPhotoItem, iPhotoApplication, iPhotoColor, iPhotoDocument, iPhotoWindow, iPhotoAttributeRun, iPhotoCharacter, iPhotoParagraph, iPhotoText, iPhotoAttachment, iPhotoWord, iPhotoAlbum, iPhotoKeyword, iPhotoPhoto, iPhotoPrintSettings;
enum iPhotoSavo {
iPhotoSavoAsk = 'ask ' /* Ask the user whether or not to save the file. */,
iPhotoSavoNo = 'no ' /* Do not save the file. */,
iPhotoSavoYes = 'yes ' /* Save the file. */
};
typedef enum iPhotoSavo iPhotoSavo;
enum iPhotoView {
iPhotoViewEdit = 'edit' /* edit */,
iPhotoViewEvents = 'evts' /* events */,
iPhotoViewOrganize = 'orga' /* organize */
};
typedef enum iPhotoView iPhotoView;
enum iPhotoAlTy {
iPhotoAlTyBookAlbum = 'book' /* book album */,
iPhotoAlTyEventsAlbum = 'eval' /* Album containing all the events in a library. */,
iPhotoAlTyFacesAlbum = 'faal' /* Album containing all the faces in a library. */,
iPhotoAlTyFlaggedAlbum = 'flal' /* Album containing all the flagged photos in a library. */,
iPhotoAlTyFolderAlbum = 'fldr' /* folder album */,
iPhotoAlTyLastImportAlbum = 'lstI' /* last import album */,
iPhotoAlTyLastMonthsAlbum = 'lstM' /* last months album */,
iPhotoAlTyLastRollsAlbum = 'lstR' /* last rolls album, but please use last import album now */,
iPhotoAlTyPhotoLibraryAlbum = 'aral' /* Album containing all the photos in a library. */,
iPhotoAlTyPlacesAlbum = 'plal' /* Album containing all the places in a library. */,
iPhotoAlTyPublishedAlbum = 'pubs' /* published album */,
iPhotoAlTyRegularAlbum = 'albm' /* regular album */,
iPhotoAlTySharedAlbum = 'papa' /* album of a shared library */,
iPhotoAlTySharedLibrary = 'papl' /* shared library; contains one or more children, which are shared albums */,
iPhotoAlTySlideshowAlbum = 'slds' /* slideshow album */,
iPhotoAlTySmartAlbum = 'smrt' /* smart album */,
iPhotoAlTySubscribedAlbum = 'subs' /* subscribed album */,
iPhotoAlTyTrashAlbum = 'tral' /* trash album */,
iPhotoAlTyUnknownAlbumType = 'aluk' /* unknown album type */
};
typedef enum iPhotoAlTy iPhotoAlTy;
enum iPhotoEnum {
iPhotoEnumStandard = 'lwst' /* Standard PostScript error handling */,
iPhotoEnumDetailed = 'lwdt' /* print a detailed report of PostScript errors */
};
typedef enum iPhotoEnum iPhotoEnum;
/*
* Standard Suite
*/
// A scriptable object.
@interface iPhotoItem : SBObject
@property (copy) NSDictionary *properties; // All of the object's properties.
- (void) closeSaving:(iPhotoSavo)saving savingIn:(NSURL *)savingIn; // Close an object.
- (void) delete; // Delete an object.
- (void) duplicateTo:(SBObject *)to withProperties:(NSDictionary *)withProperties; // Copy object(s) and put the copies at a new location.
- (BOOL) exists; // Verify if an object exists.
- (void) moveTo:(SBObject *)to; // Move object(s) to a new location.
- (void) saveAs:(NSString *)as in:(NSURL *)in_; // Save an object.
- (void) addTo:(id)to; // Add the given object to the container.
- (void) assignKeywordString:(NSString *)string; // Assign an existing keyword to the currently-selected photos.
- (void) autoImport; // Start importing photos from the auto-import folder.
- (void) duplicateTo:(id)to; // Create a duplicate of an object.
- (void) emptyTrash; // Empty the Trash album.
- (void) importFrom:(NSString *)from forceCopy:(NSInteger)forceCopy to:(iPhotoAlbum *)to; // Import the given path.
- (iPhotoAlbum *) newAlbumName:(NSString *)name; // Create a new album.
- (void) nextSlide; // Skip to previous slide in currently-playing slideshow.
- (void) pauseSlideshow; // Pause the currently-playing slideshow.
- (void) previousSlide; // Skip to next slide in currently-playing slideshow.
- (void) removeFrom:(id)from; // Remove the given object from its container.
- (void) resumeSlideshow; // Resume the currently-playing slideshow.
- (void) reverseGeocode; // Call after setting a photo's latitude and longitude. This command instructs iPhoto to use lat/lon to look up the country, city, point of interest, etc.
- (void) select; // Select one or more objects.
- (void) startSlideshowAsynchronous:(NSInteger)asynchronous displayIndex:(NSInteger)displayIndex iChat:(NSInteger)iChat usingAlbum:(NSString *)usingAlbum; // Display a slideshow with the currently-selected photos or album.
- (void) stopSlideshow; // End the currently-playing slideshow.
@end
// An application's top level scripting object.
@interface iPhotoApplication : SBApplication
- (SBElementArray *) documents;
- (SBElementArray *) windows;
@property (readonly) BOOL frontmost; // Is this the frontmost (active) application?
@property (copy, readonly) NSString *name; // The name of the application.
@property (copy, readonly) NSString *version; // The version of the application.
- (iPhotoDocument *) open:(NSURL *)x; // Open an object.
- (void) print:(NSURL *)x printDialog:(BOOL)printDialog withProperties:(iPhotoPrintSettings *)withProperties; // Print an object.
- (void) quitSaving:(iPhotoSavo)saving; // Quit an application.
@end
// A color.
@interface iPhotoColor : iPhotoItem
@end
// A document.
@interface iPhotoDocument : iPhotoItem
@property (readonly) BOOL modified; // Has the document been modified since the last save?
@property (copy) NSString *name; // The document's name.
@property (copy) NSString *path; // The document's path.
@end
// A window.
@interface iPhotoWindow : iPhotoItem
@property NSRect bounds; // The bounding rectangle of the window.
@property (readonly) BOOL closeable; // Whether the window has a close box.
@property (copy, readonly) iPhotoDocument *document; // The document whose contents are being displayed in the window.
@property (readonly) BOOL floating; // Whether the window floats.
- (NSInteger) id; // The unique identifier of the window.
@property NSInteger index; // The index of the window, ordered front to back.
@property (readonly) BOOL miniaturizable; // Whether the window can be miniaturized.
@property BOOL miniaturized; // Whether the window is currently miniaturized.
@property (readonly) BOOL modal; // Whether the window is the application's current modal window.
@property (copy) NSString *name; // The full title of the window.
@property (readonly) BOOL resizable; // Whether the window can be resized.
@property (readonly) BOOL titled; // Whether the window has a title bar.
@property BOOL visible; // Whether the window is currently visible.
@property (readonly) BOOL zoomable; // Whether the window can be zoomed.
@property BOOL zoomed; // Whether the window is currently zoomed.
@end
/*
* Text Suite
*/
// This subdivides the text into chunks that all have the same attributes.
@interface iPhotoAttributeRun : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
// This subdivides the text into characters.
@interface iPhotoCharacter : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
// This subdivides the text into paragraphs.
@interface iPhotoParagraph : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
// Rich (styled) text
@interface iPhotoText : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
// Represents an inline text attachment. This class is used mainly for make commands.
@interface iPhotoAttachment : iPhotoText
@property (copy) NSString *fileName; // The path to the file for the attachment
@end
// This subdivides the text into words.
@interface iPhotoWord : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
/*
* iPhoto suite
*/
// An album. This abstract class represents the albums within an iPhoto library.
@interface iPhotoAlbum : iPhotoItem
- (SBElementArray *) keywords;
- (SBElementArray *) photos;
@property (copy, readonly) NSArray *children; // Array of album's children albums in the library hierarchy.
- (NSInteger) id; // The unique ID of the album.
@property (copy) NSString *name; // The name of the album.
@property (copy, readonly) iPhotoAlbum *parent; // Album's parent in the library hierarchy.
@property (readonly) iPhotoAlTy type; // Type of album.
@property (copy, readonly) NSString *url; // URL of published/subscribed album.
@end
// iPhoto's top level scripting object.
@interface iPhotoApplication (IPhotoSuite)
- (SBElementArray *) albums;
- (SBElementArray *) keywords;
- (SBElementArray *) photos;
@property (copy) iPhotoAlbum *currentAlbum; // The selected album.
@property (copy, readonly) iPhotoAlbum *eventsAlbum; // Events album.
@property (copy, readonly) iPhotoAlbum *facesAlbum; // Faces album.
@property (copy, readonly) iPhotoAlbum *flaggedAlbum; // Flagged photos album.
@property (readonly) NSInteger importing; // Returns true if photo importing is in progress.
@property (copy, readonly) iPhotoAlbum *lastImportAlbum; // Last import album.
@property (copy, readonly) iPhotoAlbum *lastMonthsAlbum; // The set of N most recently imported month(s) of photos. N is based on the preference set in iPhoto.
@property (copy, readonly) iPhotoAlbum *lastRollsAlbum; // Now obsolete; please use last import album. Old: The set of N most recently imported roll(s) of photos. N is based on the preference set in iPhoto.
@property (copy, readonly) NSArray *localRootAlbums; // Returns local albums that are at the root level in the source view.
@property (copy) NSString *mailAddress; // The address for the e-mail.
@property (copy) NSString *mailRecipient; // The recipient for the e-mail.
@property (copy) NSString *mailSubject; // The subject for the e-mail.
@property (copy, readonly) iPhotoAlbum *photoLibraryAlbum; // The photo library.
@property (copy, readonly) iPhotoAlbum *placesAlbum; // Places album.
@property (copy) NSArray *selection; // The current selection.
@property (copy, readonly) NSArray *sharedLibraryAlbums; // Returns shared libraries from other computers on the network.
@property (readonly) NSInteger slideshowRunning; // Returns true if a slideshow is currently running.
@property (copy, readonly) iPhotoAlbum *trashAlbum; // The set of deleted photos.
@property iPhotoView view; // The current view in the application.
@end
// A keyword to associate with a photo.
@interface iPhotoKeyword : iPhotoItem
@property (copy) NSString *name; // The string value of the keyword.
@end
// A photo.
@interface iPhotoPhoto : iPhotoItem
- (SBElementArray *) keywords;
@property NSInteger altitude; // The GPS altitude in meters; MAXFLOAT means no altitude information.
@property (copy) NSString *comment; // A comment about the photo.
@property (copy) NSDate *date; // The date of the photo.
@property (copy, readonly) NSArray *dimensions; // The width and height of the photo in pixels.
@property (readonly) NSInteger height; // The height of the photo in pixels.
- (NSInteger) id; // The unique ID of the photo.
@property (copy, readonly) NSString *imageFilename; // The name of the image file.
@property (copy, readonly) NSString *imagePath; // The path to the image file.
@property NSInteger latitude; // The GPS latitude in range -90.0 to 90.0; MAXFLOAT means no GPS information. Use reverse geocode command after setting lat/lon.
@property NSInteger longitude; // The GPS longitude in range -180.0 to 180.0; MAXFLOAT means no GPS information. Measurement is taken from the prime meridian, so 'west' longitudes are negative numbers. Use reverse geocode command after setting lat/lon.
@property (copy) NSString *name; // The name (title) of the photo.
@property (copy, readonly) NSString *originalPath; // The path to the original image as it was imported to iPhoto.
@property NSInteger rating; // The start rating (0 through 5).
@property (copy, readonly) NSString *thumbnailFilename; // The name of the thumbnail file.
@property (copy, readonly) NSString *thumbnailPath; // The path to the thumbnail file.
@property (copy) NSString *title; // The title (name) of the photo.
@property (readonly) NSInteger width; // The width of the photo in pixels.
@end
/*
* Type Definitions
*/
@interface iPhotoPrintSettings : SBObject
@property NSInteger copies; // the number of copies of a document to be printed
@property BOOL collating; // Should printed copies be collated?
@property NSInteger startingPage; // the first page of the document to be printed
@property NSInteger endingPage; // the last page of the document to be printed
@property NSInteger pagesAcross; // number of logical pages laid across a physical page
@property NSInteger pagesDown; // number of logical pages laid out down a physical page
@property (copy) NSDate *requestedPrintTime; // the time at which the desktop printer should print the document
@property iPhotoEnum errorHandling; // how errors are handled
@property (copy) NSString *faxNumber; // for fax number
@property (copy) NSString *targetPrinter; // for target printer
- (void) closeSaving:(iPhotoSavo)saving savingIn:(NSURL *)savingIn; // Close an object.
- (void) delete; // Delete an object.
- (void) duplicateTo:(SBObject *)to withProperties:(NSDictionary *)withProperties; // Copy object(s) and put the copies at a new location.
- (BOOL) exists; // Verify if an object exists.
- (void) moveTo:(SBObject *)to; // Move object(s) to a new location.
- (void) saveAs:(NSString *)as in:(NSURL *)in_; // Save an object.
- (void) addTo:(id)to; // Add the given object to the container.
- (void) assignKeywordString:(NSString *)string; // Assign an existing keyword to the currently-selected photos.
- (void) autoImport; // Start importing photos from the auto-import folder.
- (void) duplicateTo:(id)to; // Create a duplicate of an object.
- (void) emptyTrash; // Empty the Trash album.
- (void) importFrom:(NSString *)from forceCopy:(NSInteger)forceCopy to:(iPhotoAlbum *)to; // Import the given path.
- (iPhotoAlbum *) newAlbumName:(NSString *)name; // Create a new album.
- (void) nextSlide; // Skip to previous slide in currently-playing slideshow.
- (void) pauseSlideshow; // Pause the currently-playing slideshow.
- (void) previousSlide; // Skip to next slide in currently-playing slideshow.
- (void) removeFrom:(id)from; // Remove the given object from its container.
- (void) resumeSlideshow; // Resume the currently-playing slideshow.
- (void) reverseGeocode; // Call after setting a photo's latitude and longitude. This command instructs iPhoto to use lat/lon to look up the country, city, point of interest, etc.
- (void) select; // Select one or more objects.
- (void) startSlideshowAsynchronous:(NSInteger)asynchronous displayIndex:(NSInteger)displayIndex iChat:(NSInteger)iChat usingAlbum:(NSString *)usingAlbum; // Display a slideshow with the currently-selected photos or album.
- (void) stopSlideshow; // End the currently-playing slideshow.
@end
I have a document based drawing application that allows the user to save the final document as a JPEG file. Whenever the user saves a JPEG, I would like to import the picture to an iPhoto album "MyAppName album". I am using Using Scripting Bridge and i have added the iPhoto.h file to my application. I have also added the ScriptingBridge.framework
I am having some real trouble even creating the album "MyAppName album".
Can you please show me some code for the following pseudocode:
if (check whether "MyAppName album" exists) then
myalbum = "MyAppName album"
else
myalbum = create new album "MyAppName album"
end if
add picture "/Users/myusername/myfile.jpg" to myalbum
I have added the iPhoto.h below for your convenience:
/*
* iPhoto.h
*/
#import <AppKit/AppKit.h>
#import <ScriptingBridge/ScriptingBridge.h>
@class iPhotoItem, iPhotoApplication, iPhotoColor, iPhotoDocument, iPhotoWindow, iPhotoAttributeRun, iPhotoCharacter, iPhotoParagraph, iPhotoText, iPhotoAttachment, iPhotoWord, iPhotoAlbum, iPhotoKeyword, iPhotoPhoto, iPhotoPrintSettings;
enum iPhotoSavo {
iPhotoSavoAsk = 'ask ' /* Ask the user whether or not to save the file. */,
iPhotoSavoNo = 'no ' /* Do not save the file. */,
iPhotoSavoYes = 'yes ' /* Save the file. */
};
typedef enum iPhotoSavo iPhotoSavo;
enum iPhotoView {
iPhotoViewEdit = 'edit' /* edit */,
iPhotoViewEvents = 'evts' /* events */,
iPhotoViewOrganize = 'orga' /* organize */
};
typedef enum iPhotoView iPhotoView;
enum iPhotoAlTy {
iPhotoAlTyBookAlbum = 'book' /* book album */,
iPhotoAlTyEventsAlbum = 'eval' /* Album containing all the events in a library. */,
iPhotoAlTyFacesAlbum = 'faal' /* Album containing all the faces in a library. */,
iPhotoAlTyFlaggedAlbum = 'flal' /* Album containing all the flagged photos in a library. */,
iPhotoAlTyFolderAlbum = 'fldr' /* folder album */,
iPhotoAlTyLastImportAlbum = 'lstI' /* last import album */,
iPhotoAlTyLastMonthsAlbum = 'lstM' /* last months album */,
iPhotoAlTyLastRollsAlbum = 'lstR' /* last rolls album, but please use last import album now */,
iPhotoAlTyPhotoLibraryAlbum = 'aral' /* Album containing all the photos in a library. */,
iPhotoAlTyPlacesAlbum = 'plal' /* Album containing all the places in a library. */,
iPhotoAlTyPublishedAlbum = 'pubs' /* published album */,
iPhotoAlTyRegularAlbum = 'albm' /* regular album */,
iPhotoAlTySharedAlbum = 'papa' /* album of a shared library */,
iPhotoAlTySharedLibrary = 'papl' /* shared library; contains one or more children, which are shared albums */,
iPhotoAlTySlideshowAlbum = 'slds' /* slideshow album */,
iPhotoAlTySmartAlbum = 'smrt' /* smart album */,
iPhotoAlTySubscribedAlbum = 'subs' /* subscribed album */,
iPhotoAlTyTrashAlbum = 'tral' /* trash album */,
iPhotoAlTyUnknownAlbumType = 'aluk' /* unknown album type */
};
typedef enum iPhotoAlTy iPhotoAlTy;
enum iPhotoEnum {
iPhotoEnumStandard = 'lwst' /* Standard PostScript error handling */,
iPhotoEnumDetailed = 'lwdt' /* print a detailed report of PostScript errors */
};
typedef enum iPhotoEnum iPhotoEnum;
/*
* Standard Suite
*/
// A scriptable object.
@interface iPhotoItem : SBObject
@property (copy) NSDictionary *properties; // All of the object's properties.
- (void) closeSaving:(iPhotoSavo)saving savingIn:(NSURL *)savingIn; // Close an object.
- (void) delete; // Delete an object.
- (void) duplicateTo:(SBObject *)to withProperties:(NSDictionary *)withProperties; // Copy object(s) and put the copies at a new location.
- (BOOL) exists; // Verify if an object exists.
- (void) moveTo:(SBObject *)to; // Move object(s) to a new location.
- (void) saveAs:(NSString *)as in:(NSURL *)in_; // Save an object.
- (void) addTo:(id)to; // Add the given object to the container.
- (void) assignKeywordString:(NSString *)string; // Assign an existing keyword to the currently-selected photos.
- (void) autoImport; // Start importing photos from the auto-import folder.
- (void) duplicateTo:(id)to; // Create a duplicate of an object.
- (void) emptyTrash; // Empty the Trash album.
- (void) importFrom:(NSString *)from forceCopy:(NSInteger)forceCopy to:(iPhotoAlbum *)to; // Import the given path.
- (iPhotoAlbum *) newAlbumName:(NSString *)name; // Create a new album.
- (void) nextSlide; // Skip to previous slide in currently-playing slideshow.
- (void) pauseSlideshow; // Pause the currently-playing slideshow.
- (void) previousSlide; // Skip to next slide in currently-playing slideshow.
- (void) removeFrom:(id)from; // Remove the given object from its container.
- (void) resumeSlideshow; // Resume the currently-playing slideshow.
- (void) reverseGeocode; // Call after setting a photo's latitude and longitude. This command instructs iPhoto to use lat/lon to look up the country, city, point of interest, etc.
- (void) select; // Select one or more objects.
- (void) startSlideshowAsynchronous:(NSInteger)asynchronous displayIndex:(NSInteger)displayIndex iChat:(NSInteger)iChat usingAlbum:(NSString *)usingAlbum; // Display a slideshow with the currently-selected photos or album.
- (void) stopSlideshow; // End the currently-playing slideshow.
@end
// An application's top level scripting object.
@interface iPhotoApplication : SBApplication
- (SBElementArray *) documents;
- (SBElementArray *) windows;
@property (readonly) BOOL frontmost; // Is this the frontmost (active) application?
@property (copy, readonly) NSString *name; // The name of the application.
@property (copy, readonly) NSString *version; // The version of the application.
- (iPhotoDocument *) open:(NSURL *)x; // Open an object.
- (void) print:(NSURL *)x printDialog:(BOOL)printDialog withProperties:(iPhotoPrintSettings *)withProperties; // Print an object.
- (void) quitSaving:(iPhotoSavo)saving; // Quit an application.
@end
// A color.
@interface iPhotoColor : iPhotoItem
@end
// A document.
@interface iPhotoDocument : iPhotoItem
@property (readonly) BOOL modified; // Has the document been modified since the last save?
@property (copy) NSString *name; // The document's name.
@property (copy) NSString *path; // The document's path.
@end
// A window.
@interface iPhotoWindow : iPhotoItem
@property NSRect bounds; // The bounding rectangle of the window.
@property (readonly) BOOL closeable; // Whether the window has a close box.
@property (copy, readonly) iPhotoDocument *document; // The document whose contents are being displayed in the window.
@property (readonly) BOOL floating; // Whether the window floats.
- (NSInteger) id; // The unique identifier of the window.
@property NSInteger index; // The index of the window, ordered front to back.
@property (readonly) BOOL miniaturizable; // Whether the window can be miniaturized.
@property BOOL miniaturized; // Whether the window is currently miniaturized.
@property (readonly) BOOL modal; // Whether the window is the application's current modal window.
@property (copy) NSString *name; // The full title of the window.
@property (readonly) BOOL resizable; // Whether the window can be resized.
@property (readonly) BOOL titled; // Whether the window has a title bar.
@property BOOL visible; // Whether the window is currently visible.
@property (readonly) BOOL zoomable; // Whether the window can be zoomed.
@property BOOL zoomed; // Whether the window is currently zoomed.
@end
/*
* Text Suite
*/
// This subdivides the text into chunks that all have the same attributes.
@interface iPhotoAttributeRun : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
// This subdivides the text into characters.
@interface iPhotoCharacter : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
// This subdivides the text into paragraphs.
@interface iPhotoParagraph : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
// Rich (styled) text
@interface iPhotoText : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
// Represents an inline text attachment. This class is used mainly for make commands.
@interface iPhotoAttachment : iPhotoText
@property (copy) NSString *fileName; // The path to the file for the attachment
@end
// This subdivides the text into words.
@interface iPhotoWord : iPhotoItem
- (SBElementArray *) attachments;
- (SBElementArray *) attributeRuns;
- (SBElementArray *) characters;
- (SBElementArray *) paragraphs;
- (SBElementArray *) words;
@property (copy) NSColor *color; // The color of the first character.
@property (copy) NSString *font; // The name of the font of the first character.
@property NSInteger size; // The size in points of the first character.
@end
/*
* iPhoto suite
*/
// An album. This abstract class represents the albums within an iPhoto library.
@interface iPhotoAlbum : iPhotoItem
- (SBElementArray *) keywords;
- (SBElementArray *) photos;
@property (copy, readonly) NSArray *children; // Array of album's children albums in the library hierarchy.
- (NSInteger) id; // The unique ID of the album.
@property (copy) NSString *name; // The name of the album.
@property (copy, readonly) iPhotoAlbum *parent; // Album's parent in the library hierarchy.
@property (readonly) iPhotoAlTy type; // Type of album.
@property (copy, readonly) NSString *url; // URL of published/subscribed album.
@end
// iPhoto's top level scripting object.
@interface iPhotoApplication (IPhotoSuite)
- (SBElementArray *) albums;
- (SBElementArray *) keywords;
- (SBElementArray *) photos;
@property (copy) iPhotoAlbum *currentAlbum; // The selected album.
@property (copy, readonly) iPhotoAlbum *eventsAlbum; // Events album.
@property (copy, readonly) iPhotoAlbum *facesAlbum; // Faces album.
@property (copy, readonly) iPhotoAlbum *flaggedAlbum; // Flagged photos album.
@property (readonly) NSInteger importing; // Returns true if photo importing is in progress.
@property (copy, readonly) iPhotoAlbum *lastImportAlbum; // Last import album.
@property (copy, readonly) iPhotoAlbum *lastMonthsAlbum; // The set of N most recently imported month(s) of photos. N is based on the preference set in iPhoto.
@property (copy, readonly) iPhotoAlbum *lastRollsAlbum; // Now obsolete; please use last import album. Old: The set of N most recently imported roll(s) of photos. N is based on the preference set in iPhoto.
@property (copy, readonly) NSArray *localRootAlbums; // Returns local albums that are at the root level in the source view.
@property (copy) NSString *mailAddress; // The address for the e-mail.
@property (copy) NSString *mailRecipient; // The recipient for the e-mail.
@property (copy) NSString *mailSubject; // The subject for the e-mail.
@property (copy, readonly) iPhotoAlbum *photoLibraryAlbum; // The photo library.
@property (copy, readonly) iPhotoAlbum *placesAlbum; // Places album.
@property (copy) NSArray *selection; // The current selection.
@property (copy, readonly) NSArray *sharedLibraryAlbums; // Returns shared libraries from other computers on the network.
@property (readonly) NSInteger slideshowRunning; // Returns true if a slideshow is currently running.
@property (copy, readonly) iPhotoAlbum *trashAlbum; // The set of deleted photos.
@property iPhotoView view; // The current view in the application.
@end
// A keyword to associate with a photo.
@interface iPhotoKeyword : iPhotoItem
@property (copy) NSString *name; // The string value of the keyword.
@end
// A photo.
@interface iPhotoPhoto : iPhotoItem
- (SBElementArray *) keywords;
@property NSInteger altitude; // The GPS altitude in meters; MAXFLOAT means no altitude information.
@property (copy) NSString *comment; // A comment about the photo.
@property (copy) NSDate *date; // The date of the photo.
@property (copy, readonly) NSArray *dimensions; // The width and height of the photo in pixels.
@property (readonly) NSInteger height; // The height of the photo in pixels.
- (NSInteger) id; // The unique ID of the photo.
@property (copy, readonly) NSString *imageFilename; // The name of the image file.
@property (copy, readonly) NSString *imagePath; // The path to the image file.
@property NSInteger latitude; // The GPS latitude in range -90.0 to 90.0; MAXFLOAT means no GPS information. Use reverse geocode command after setting lat/lon.
@property NSInteger longitude; // The GPS longitude in range -180.0 to 180.0; MAXFLOAT means no GPS information. Measurement is taken from the prime meridian, so 'west' longitudes are negative numbers. Use reverse geocode command after setting lat/lon.
@property (copy) NSString *name; // The name (title) of the photo.
@property (copy, readonly) NSString *originalPath; // The path to the original image as it was imported to iPhoto.
@property NSInteger rating; // The start rating (0 through 5).
@property (copy, readonly) NSString *thumbnailFilename; // The name of the thumbnail file.
@property (copy, readonly) NSString *thumbnailPath; // The path to the thumbnail file.
@property (copy) NSString *title; // The title (name) of the photo.
@property (readonly) NSInteger width; // The width of the photo in pixels.
@end
/*
* Type Definitions
*/
@interface iPhotoPrintSettings : SBObject
@property NSInteger copies; // the number of copies of a document to be printed
@property BOOL collating; // Should printed copies be collated?
@property NSInteger startingPage; // the first page of the document to be printed
@property NSInteger endingPage; // the last page of the document to be printed
@property NSInteger pagesAcross; // number of logical pages laid across a physical page
@property NSInteger pagesDown; // number of logical pages laid out down a physical page
@property (copy) NSDate *requestedPrintTime; // the time at which the desktop printer should print the document
@property iPhotoEnum errorHandling; // how errors are handled
@property (copy) NSString *faxNumber; // for fax number
@property (copy) NSString *targetPrinter; // for target printer
- (void) closeSaving:(iPhotoSavo)saving savingIn:(NSURL *)savingIn; // Close an object.
- (void) delete; // Delete an object.
- (void) duplicateTo:(SBObject *)to withProperties:(NSDictionary *)withProperties; // Copy object(s) and put the copies at a new location.
- (BOOL) exists; // Verify if an object exists.
- (void) moveTo:(SBObject *)to; // Move object(s) to a new location.
- (void) saveAs:(NSString *)as in:(NSURL *)in_; // Save an object.
- (void) addTo:(id)to; // Add the given object to the container.
- (void) assignKeywordString:(NSString *)string; // Assign an existing keyword to the currently-selected photos.
- (void) autoImport; // Start importing photos from the auto-import folder.
- (void) duplicateTo:(id)to; // Create a duplicate of an object.
- (void) emptyTrash; // Empty the Trash album.
- (void) importFrom:(NSString *)from forceCopy:(NSInteger)forceCopy to:(iPhotoAlbum *)to; // Import the given path.
- (iPhotoAlbum *) newAlbumName:(NSString *)name; // Create a new album.
- (void) nextSlide; // Skip to previous slide in currently-playing slideshow.
- (void) pauseSlideshow; // Pause the currently-playing slideshow.
- (void) previousSlide; // Skip to next slide in currently-playing slideshow.
- (void) removeFrom:(id)from; // Remove the given object from its container.
- (void) resumeSlideshow; // Resume the currently-playing slideshow.
- (void) reverseGeocode; // Call after setting a photo's latitude and longitude. This command instructs iPhoto to use lat/lon to look up the country, city, point of interest, etc.
- (void) select; // Select one or more objects.
- (void) startSlideshowAsynchronous:(NSInteger)asynchronous displayIndex:(NSInteger)displayIndex iChat:(NSInteger)iChat usingAlbum:(NSString *)usingAlbum; // Display a slideshow with the currently-selected photos or album.
- (void) stopSlideshow; // End the currently-playing slideshow.
@end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这应该可以让您将事件添加到事件中。创建相册应该只是一个额外的步骤,一旦您在应用程序中使用了以下代码,这应该非常简单。
This should get you to the point of adding an event to events. Creating the album should just be an extra step which should be pretty straightforward once you get the below code working in your app.