Last active
November 24, 2016 12:06
-
-
Save abynim/e2df3ea4dc9ede209cc0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Include abstract search functions | |
// -------------------------- | |
// 1. Search for Layers by Name | |
// layerName parameter is required. container and layerType are optional. | |
var findLayersNamed_inContainer_filterByType = function(layerName, container, layerType) { | |
var predicate = (typeof layerType === 'undefined' || layerType == nil) ? NSPredicate.predicateWithFormat("name == %@", layerName) : NSPredicate.predicateWithFormat("name == %@ && class == %@", layerName, layerType) | |
return findLayersMatchingPredicate_inContainer_filterByType(predicate, container) | |
} | |
// Example usage: | |
// Find Layers named `Rectangle 1` | |
log( findLayersNamed_inContainer_filterByType("Rectangle 1") ) | |
// Find Text Layers named `Type something` in the current Page | |
log( findLayersNamed_inContainer_filterByType("Type something", doc.currentPage(), MSTextLayer) ) | |
// -------------------------- | |
// 2. Search for Artboards by Name | |
var findArtboardsNamed = function(artboardName) { | |
var predicate = NSPredicate.predicateWithFormat("name == %@", artboardName) | |
return findLayersMatchingPredicate_inContainer_filterByType(predicate, nil, MSArtboardGroup) | |
} | |
// Example usage: | |
// Find Artboards named `Artboard 1` | |
log( findArtboardsNamed("Artboard 1") ) | |
// -------------------------- | |
// 3. Search for Pages by Name | |
var findPagesNamed = function(pageName) { | |
var predicate = NSPredicate.predicateWithFormat("name == %@", pageName) | |
return findLayersMatchingPredicate_inContainer_filterByType(predicate, nil, MSPage) | |
} | |
// Example usage: | |
// Find Pages named `Page 1` | |
log( findPagesNamed("Page 1") ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment