Automator eylemlerini oluşturma, yapılandırma ve yönetme.
AMAction
Sınıf | Automator
*Mac Catalyst 14.0+, macOS 10.4+ sürümlerinde kullanılabilir.*
Automator eylemlerinin arayüzünü ve genel özelliklerini tanımlayan soyut sınıf.
class AMAction
Automator, kullanıcıların eylem (action) adı verilen ayrık modüllerden oluşan iş akışları oluşturmasına ve çalıştırmasına olanak tanıyan bir Apple uygulamasıdır. Bir eylem, bir dosyayı kopyalamak veya bir görüntüyü kırpmak gibi belirli bir görevi gerçekleştirir ve çıktısını, iş akışındaki bir sonraki eyleme verilmek üzere Automator'a iletir. Eylemler şu anda AMAction'ın bir alt sınıfı olan AMBundleAction sınıfının nesneleri tarafından sahiplenilen yüklenebilir paketler olarak uygulanmaktadır.
AMAction tarafından tanımlanan kritik yöntem run(withInput:) yöntemidir. Automator bir iş akışını çalıştırdığında, bu mesajı iş akışındaki her eylem nesnesine (iş akışı sırasına göre) gönderir ve çoğu durumda önceki eylemin çıktısını girdi olarak iletir. Eylem nesnesi görevini bu yöntemde gerçekleştirir ve iş akışındaki bir sonraki eylem için bir çıktı nesnesi döndürerek sonlandırır.
AMAction'ın alt sınıfını oluşturmak önerilmez. Automator çerçevesine geliştirme gerektiren çoğu durum için AMBundleAction'ın alt sınıfını oluşturmak yeterlidir.
Başlatma ve Kodlama
init?(definition: [String : Any]?, fromArchive: Bool)
Eylemi belirtilen tanımla başlatır.
init(contentsOf: URL) throws
Bir dosya URL'sinden Automator eylemi yükler.
func write(to: NSMutableDictionary)
İletilen sözlükteki parametreleri ve diğer yapılandırma bilgilerini inceler ve uygunsa kendi bilgilerini ekler.
Eylemi Kontrol Etme
func run(withInput: Any?) throws -> Any
Eylemden belirtilen girdiyi kullanarak görevini gerçekleştirmesini ister.
func runAsynchronously(withInput: Any?)
Automator'ın eylemin yürütmeyi tamamladığına dair bildirim beklemesine neden olur; bu da eylemin asenkron bir işlem gerçekleştirmesine olanak tanır.
func finishRunningWithError((any Error)?)
Eylemin çalışmayı durdurmasına ve bir hata döndürmesine neden olur; bu da iş akışının durmasına yol açar.
func willFinishRunning()
Bir eyleme pencereleri kapatma ve bellek serbest bırakma gibi temizleme işlemleri gerçekleştirme fırsatı sağlar.
func stop()
Eylemin çalışmasını durdurur.
func reset()
Eylemi ilk durumuna sıfırlar.
Eylem Kullanıcı Arayüzünü Başlatma ve Senkronize Etme
func activated()
Eylemin bilgilerini başka bir uygulamadaki ayarlarla senkronize etmesine olanak tanır.
func opened()
Eylemin kullanıcı arayüzünü başlatmasına olanak tanır.
Günlük Kaydı Gerçekleştirme
enum AMLogLevel
Automator'ın desteklediği günlük kaydı seviyeleri.
Eylem Parametrelerini Güncelleme
func parametersUpdated()
Eylemden, değişen depolanmış parametrelerinden kullanıcı arayüzünü güncellemesini ister.
func updateParameters()
Eylemden, eylemin kullanıcı arayüzündeki ayarlardan depolanmış parametre setini güncellemesini ister.
Eylem Bilgisi Alma
var name: String
Eylemin adı.
var progressValue: CGFloat
İşleme sırasında eylemin ne kadar ilerlediğini gösteren, 0 ile 1 arasında bir ondalık sayı değeri.
var ignoresInput: Bool
Eylemin girdisi üzerinde işlem yapıp yapmadığını veya girdinin yok sayılıp sayılmadığını gösteren bir Boolean değeri.
var output: Any?
Eylemin çıktısı.
var selectedInputType: String?
Eylem tarafından alınan girdinin UTI formatındaki türü.
var selectedOutputType: String?
Eylem tarafından üretilecek çıktının UTI formatındaki türü.
var isStopped: Bool
Kullanıcının üst iş akışındaki durdur düğmesine tıklayıp tıklamadığını gösteren bir Boolean değeri.
Temizleme İşlemleri Gerçekleştirme
func closed()
Alıcı eylem bir iş akışından kaldırıldığında Automator tarafından çağrılır ve eylemin temizleme işlemleri gerçekleştirmesine olanak tanır.
init(definition:fromArchive:)
Başlatıcı
Eylemi belirtilen tanımla başlatır.
init?(definition dict: [String : Any]?, fromArchive archived: Bool)
Başlatılmış eylem nesnesi.
Parametreler
- dict: Eylem hakkında, özel tanım özellikleri dahil, açıklama içeren bir sözlük.
- archived: Eylem arşivden çıkarılıyorsa
true; aksi haldefalse.
init(contentsOf:)
Başlatıcı
Bir dosya URL'sinden Automator eylemi yükler.
init(contentsOf fileURL: URL) throws
Başlatılmış eylem nesnesi.
Parametreler
- fileURL: Bir eylem dosyasının konumunu belirten URL.
write(to:)
Örnek Yöntemi
İletilen sözlükteki parametreleri ve diğer yapılandırma bilgilerini inceler ve uygunsa kendi bilgilerini ekler.
func write(to dictionary: NSMutableDictionary)
Automator, bir eylem nesnesini arşivlemeden önce bu mesajı gönderir. Eylem nesnesi, bu yöntemin uygulamasında öncelikle üst sınıf uygulamasını çağırmalıdır.
Parametreler
- dictionary: Eylem hakkında parametre ve diğer yapılandırma bilgilerini içeren bir sözlük.
run(withInput:)
Örnek Yöntemi
Eylemden belirtilen girdiyi kullanarak görevini gerçekleştirmesini ister.
func run(withInput input: Any?) throws -> Any
Alıcı eylemin AMProvides özelliğinde belirtilen bir türle uyumlu bir veya daha fazla nesne içeren bir NSArray nesnesi. Eylem input'ta iletilen veriyi değiştirmezse, değiştirmeden döndürmelidir. Eylemin sağlayacak verisi yoksa, boş bir NSArray nesnesi döndürmelidir.
Parametreler
- input: Alıcı eylem için girdi. Eylemin
selectedInputTypeözelliğinde belirtilen türlerden biriyle uyumlu bir veya daha fazla nesne içermelidir.
runAsynchronously(withInput:)
Örnek Yöntemi
Automator'ın eylemin yürütmeyi tamamladığına dair bildirim beklemesine neden olur; bu da eylemin asenkron bir işlem gerçekleştirmesine olanak tanır.
func runAsynchronously(withInput input: Any?)
Asenkron çağrılar yapması gereken eylemlerde bu yöntemi geçersiz kılın (override). runAsynchronously(withInput:) çağrıldıktan sonra, eylem finishRunningWithError(_:) yöntemini çağırana kadar Automator devam etmez. Bu yöntemin geçersiz kılınmış halinde, asenkron bir çağrı yapabilir, tamamlanması hakkında bildirim bekleyebilir ve ardından Automator'a eylemin tamamlandığını bildirmek için finishRunningWithError(_:) yöntemini çağırabilirsiniz.
Uyarı: finishRunningWithError(_:) yönteminin çağrılmaması, bir iş akışının süresiz olarak takılmasına neden olabilir.
Asenkron çağrılar yapması gerekmeyen eylemler için bunun yerine run(withInput:) yöntemini kullanın.
Parametreler
- input: Eylem için girdi. Eylemin
selectedInputTypeözelliğinde belirtilen türlerden biriyle uyumlu bir veya daha fazla nesne içermelidir.
finishRunningWithError(_:)
Örnek Yöntemi
Eylemin çalışmayı durdurmasına ve bir hata döndürmesine neden olur; bu da iş akışının durmasına yol açar.
func finishRunningWithError(_ error: (any Error)?)
Asenkron çağrılar yapmak üzere runAsynchronously(withInput:) yöntemini geçersiz kılan herhangi bir eylemde bu yöntemi çağırın. finishRunningWithError(_:) çağrıldığında, hemen willFinishRunning() yöntemini çağırır.
Parametreler
- error: Automator'a döndürülecek hata.
willFinishRunning()
Örnek Yöntemi
Bir eyleme pencereleri kapatma ve bellek serbest bırakma gibi temizleme işlemleri gerçekleştirme fırsatı sağlar.
func willFinishRunning()
Asenkron çağrılar yapması gereken eylemlerde bu yöntemi geçersiz kılın. Automator, eylem çalışma aşamasını tamamlamak üzereyken bu yöntemi çağırır.
stop()
Örnek Yöntemi
Eylemin çalışmasını durdurur.
func stop()
Mevcut iş akışının yürütülmesi sırasında eylem tarafından elde edilen çıktı, Automator tarafından hâlâ erişilebilir durumdadır.
reset()
Örnek Yöntemi
Eylemi ilk durumuna sıfırlar.
func reset()
Sıfırlama, eylemin mevcut iş akışı yürütmesinden üretilen çıktısını serbest bırakmasına neden olur.
activated()
Örnek Yöntemi
Eylemin bilgilerini başka bir uygulamadaki ayarlarla senkronize etmesine olanak tanır.
func activated()
Sistem, eylemin ait olduğu Automator iş akışının penceresi ana pencere olduğunda bu yöntemi çağırır.
Bu yöntemin uygulamanızdaki son adım olarak üst sınıf uygulamasını çağırdığınızdan emin olun.
opened()
Örnek Yöntemi
Eylemin kullanıcı arayüzünü başlatmasına olanak tanır.
func opened()
Sistem, eylem ilk kez bir iş akışına eklendiğinde bu yöntemi çağırır.
Bir eylemin kullanıcı arayüzünün tüm başlatmalarını awakeFromNib yerine bu yöntemde gerçekleştirmelisiniz. Uygulamanızın son adımı olarak üst sınıf uygulamasını çağırdığınızdan emin olun.
closed()
Örnek Yöntemi
Alıcı eylem bir iş akışından kaldırıldığında Automator tarafından çağrılır ve eylemin temizleme işlemleri gerçekleştirmesine olanak tanır.
func closed()
Bu yöntem, eyleminizin kendi temizleme işlemlerini gerçekleştirebilmesi için geçersiz kılınmak (override) üzere tasarlanmıştır.
parametersUpdated()
Örnek Yöntemi
Eylemden, değişen depolanmış parametrelerinden kullanıcı arayüzünü güncellemesini ister.
func parametersUpdated()
updateParameters()
Örnek Yöntemi
Eylemden, eylemin kullanıcı arayüzündeki ayarlardan depolanmış parametre setini güncellemesini ister.
func updateParameters()
Bu mesaj, bir eylem kaydedilmeden, kopyalanmadan veya çalıştırılmadan hemen önce gönderilir. Tercihen, bir eylemin ayarları yalnızca görünümünün kontrollerinde bulunmamalıdır, ancak bulunuyorsa eylem bu yöntemde onları alıp kaydedebilir.
name
Örnek Özelliği
Eylemin adı.
var name: String { get }
progressValue
Örnek Özelliği
İşleme sırasında eylemin ne kadar ilerlediğini gösteren, 0 ile 1 arasında bir ondalık sayı değeri.
var progressValue: CGFloat { get set }
Bu değerin ayarlanması, Automator'ın eylem ilerleme göstergesinin (bir iş akışı çalışırken görüntülenir) güncellenmesine neden olarak kullanıcıya ilerleme hakkında bir gösterge sağlar.
ignoresInput
Örnek Özelliği
Eylemin girdisi üzerinde işlem yapıp yapmadığını veya girdinin yok sayılıp sayılmadığını gösteren bir Boolean değeri.
var ignoresInput: Bool { get }
Eylem girdisi üzerinde işlem yapıyorsa true, aksi halde false.
Birçok eylem girdileri üzerinde işlem yapar, ancak bir eylem yalnızca girdisini iletebilir veya nadiren yok sayabilir.
output
Örnek Özelliği
Eylemin çıktısı.
var output: Any? { get set }
Alıcı eylemin çıktısı veya eylem çalıştırılmadan önce çağrılırsa nil.
selectedInputType
Örnek Özelliği
Eylem tarafından alınan girdinin UTI formatındaki türü.
var selectedInputType: String? { get set }
Bu değerin alınması, eylemin kabul etmek üzere yapılandırıldığı girdi türünü sağlar. Örneğin, eyleminiz nasıl yapılandırıldığına ve iş akışında kendisinden önce hangi eylemin geldiğine bağlı olarak dosya ve klasörleri veya belgeleri kabul etme yeteneğine sahip olabilir.
Eylemin desteklediği girdi türleri, eylemin Info.plist dosyasında belirtilir. Varsayılan olarak, bu özellik Info.plist dosyasındaki ilk girdi türüne ayarlanır.
selectedOutputType
Örnek Özelliği
Eylem tarafından üretilecek çıktının UTI formatındaki türü.
var selectedOutputType: String? { get set }
Bu değerin alınması, eylemin üretmek üzere yapılandırıldığı çıktı türünü sağlar. Örneğin, eyleminiz nasıl yapılandırıldığına veya işleme sırasında neyle karşılaştığına bağlı olarak dosya ve klasörler veya belgeler çıktısı verme yeteneğine sahip olabilir.
Eylemin desteklediği çıktı türleri, eylemin Info.plist dosyasında belirtilir. Varsayılan olarak, bu özellik Info.plist dosyasındaki ilk çıktı türüne ayarlanır.
Bu değeri, eylemin ürettiği çıktı türünü açıkça belirtmek için ayarlayın. Bu değerin uygun çıktıyı doğru yansıtacak şekilde ayarlanması, Automator'ın çıktının iş akışındaki bir sonraki eylemle uyumlu olup olmadığını belirlemesine yardımcı olur.
isStopped
Örnek Özelliği
Kullanıcının üst iş akışındaki durdur düğmesine tıklayıp tıklamadığını gösteren bir Boolean değeri.
var isStopped: Bool { get }
Kullanıcı durdur düğmesine tıkladıysa bu değer true, iş akışı hâlâ çalışıyorsa false'tır. Bu özellik, bir döngü gibi uzun süreli eylem işlemleri sırasında, işlemden çıkılıp eylemin durdurulup durdurulmayacağını belirlemek için referans alınmalıdır.
AMLogLevel
Numaralandırma
Automator'ın desteklediği günlük kaydı seviyeleri.
enum AMLogLevel
Sabitler
case debug— Hata ayıklama günlük seviyesi.case info— Bilgi günlük seviyesi.case warn— Uyarı günlük seviyesi.case error— Hata günlük seviyesi.
Başlatıcılar
init?(rawValue: UInt)
AMBundleAction
Sınıf | Automator
*Mac Catalyst 14.0+, macOS 10.4+ sürümlerinde kullanılabilir.*
Yüklenebilir paket olan bir Automator eylemini temsil eden nesne.
class AMBundleAction
Automator, eylem paketlerini dosya sistemindeki standart konumlardan yükler: /System/Library/Automator, /Library/Automator ve ~/Library/Automator.
AMBundleAction nesnelerinin birkaç önemli özelliği vardır:
- Eylemin fiziksel paketiyle ilişkili
Bundlenesnesi - Kullanıcı arayüzünü barındıran eylemin görünümü
- Kullanıcı arayüzündeki ayarları yansıtan bir parametreler sözlüğü
Xcode'da bir Cocoa Automator Action projesi oluşturduğunuzda, proje şablonu AMBundleAction'ın özel bir alt sınıfını içerir. Bu özel sınıf, projenin adını kullanır.
Üst sınıf AMAction tarafından tanımlanan run(withInput:) yönteminin bir uygulamasını sağlamalısınız. Herhangi bir örnek değişkeni eklerseniz, bunlarla çalışmak için AMAction'ın init(definition:fromArchive:) ve write(to:) yöntemlerini geçersiz kılmalısınız (override).
Eylemi Başlatma
func awakeFromBundle()
Eylem nesnesinin, tüm paket nesnelerinin varlığını gerektiren kurulum görevlerini gerçekleştirmesine olanak tanır.
Eylem Özelliklerini Yönetme
var bundle: Bundle
Eylemin paket nesnesi.
var hasView: Bool
Eylemin kendisiyle ilişkili bir görünümü olup olmadığını gösteren bir Boolean değeri.
var view: NSView?
Eylemin görünüm nesnesi.
var parameters: NSMutableDictionary?
Eylemin parametreleri.
awakeFromBundle()
Örnek Yöntemi
Eylem nesnesinin, tüm paket nesnelerinin varlığını gerektiren kurulum görevlerini gerçekleştirmesine olanak tanır.
func awakeFromBundle()
Paketindeki tüm nesneler arşivden çıkarıldığında sistem bu mesajı eylem nesnesine gönderir. Bu yöntemi, bildirim gözlemcisi ekleme, dinamik olarak bağlama (binding) oluşturma ve dinamik olarak hedef ve eylem ayarlama gibi kurulum görevlerini gerçekleştirmek için kullanın.
bundle
Örnek Özelliği
Eylemin paket nesnesi.
var bundle: Bundle { get }
hasView
Örnek Özelliği
Eylemin kendisiyle ilişkili bir görünümü olup olmadığını gösteren bir Boolean değeri.
var hasView: Bool { get }
view
Örnek Özelliği
Eylemin görünüm nesnesi.
var view: NSView? { get }
parameters
Örnek Özelliği
Eylemin parametreleri.
var parameters: NSMutableDictionary? { get set }
Bir eylemin parametreleri, eylemin kullanıcı arayüzünde yapılan seçimleri ve girilen değerleri yansıtır. Parametreler sözlüğündeki anahtarlar, belirli kullanıcı arayüzü nesnelerini tanımlar. Bir eylem Cocoa bağlama (bindings) mekanizmasını kullanıyorsa, bir AMBundleAction nesnesinin parametreleri otomatik olarak ayarlanır.
İlişkiler
Miras Aldığı Sınıf
- AMAction
Miras Alanlar
- AMAppleScriptAction
- AMShellScriptAction
AMShellScriptAction
Sınıf | Automator
*Mac Catalyst 14.0+, macOS 10.4+ sürümlerinde kullanılabilir.*
Çalışma zamanı davranışı bir kabuk betiği veya bir Perl ya da Python betiği tarafından yönlendirilen Automator eylemlerini temsil eden nesne.
class AMShellScriptAction
Xcode'da bir Shell Script Automator Action projesi oluşturduğunuzda, proje şablonu eylem paketinin Baş Sınıfı (Principal Class) olarak bir AMShellScriptAction örneği sağlar. Bu hazır örnek, betikteki mantığı kullanan AMAction run(withInput:) yönteminin varsayılan bir uygulamasını sağlar. İhtiyaç duyarsanız, Baş Sınıf için kendi AMShellScriptAction alt sınıfınızı kullanabilirsiniz.
G/Ç Ayırıcı Karakteri İşleme
var inputFieldSeparator: String
Standart girdi aracılığıyla eyleme iletilen dizedeki öğeler arasında ayırıcı olarak kullanılacak dize.
var outputFieldSeparator: String
Eylem tarafından çıktı olarak verilen dizede ayırıcı olarak kullanılacak dize.
var remapLineEndings: Bool
Girdi dizesindeki satır başı (\r) karakterlerinin yeni satır (\n) karakterlerine otomatik olarak yeniden eşlenmesini isteyip istemediğinizi gösteren bir Boolean değeri.
inputFieldSeparator
Örnek Özelliği
Standart girdi aracılığıyla eyleme iletilen dizedeki öğeler arasında ayırıcı olarak kullanılacak dize.
var inputFieldSeparator: String { get }
Automator çerçevesi, önceki eylemin çıktısını (genellikle bir liste veya dizi biçiminde) girdi alan ayırıcı ile birleştirilen dizi elemanlarının oluşturduğu tek bir dizeye dönüştürür. Varsayılan olarak, bu ayırıcı yeni satır karakteridir (\n). Örneğin, xargs -0 için boş sonlandırılmış dizeler sağlamak üzere bir boş karakter (\0) döndürmek için bu yöntemi geçersiz kılabilirsiniz.
outputFieldSeparator
Örnek Özelliği
Eylem tarafından çıktı olarak verilen dizede ayırıcı olarak kullanılacak dize.
var outputFieldSeparator: String { get }
Tamamlandığında, Automator çerçevesi eylem tarafından sağlanan çıktı dizesini, iş akışındaki bir sonraki eyleme iletilmek üzere daha fazla işlem için bir diziye (veya listeye) dönüştürür. Bu dizideki elemanlar, çıktı alan ayırıcısıyla ayrılan alanlardan elde edilir. Varsayılan değer, inputFieldSeparator tarafından döndürülen ayırıcı karakterdir. Çıktı için farklı bir ayırıcı istiyorsanız bu yöntemi geçersiz kılın.
remapLineEndings
Örnek Özelliği
Girdi dizesindeki satır başı (\r) karakterlerinin yeni satır (\n) karakterlerine otomatik olarak yeniden eşlenmesini isteyip istemediğinizi gösteren bir Boolean değeri.
var remapLineEndings: Bool { get }
Varsayılan değer false'tır. Yeniden eşlemenin gerçekleşmesini istiyorsanız true döndürmek için geçersiz kılın.
İlişkiler
Miras Aldığı Sınıf
- AMBundleAction
AMAppleScriptAction
Sınıf | Automator *(Kullanımdan kaldırıldı)*
*Mac Catalyst 14.0+, macOS 10.4+ sürümlerinde kullanılabilir.*
Çalışma zamanı davranışı bir AppleScript betiği tarafından yönlendirilen Automator eylemlerini temsil eden nesne.
class AMAppleScriptAction
Bir AMAppleScriptAction nesnesi, derlenmiş betiği OSAScript sınıfının bir örneği olarak tutar. Varsayılan olarak, OSAScript nesnesi Xcode proje dosyasındaki main.applescript betikten örneklenir.
Xcode'da bir Automator AppleScript Action projesi oluşturduğunuzda, proje şablonu eylem paketinin Dosya Sahibi (File's Owner) olarak bir AMAppleScriptAction örneği sağlar. Bu hazır örnek, betikteki mantığı kullanan AMAction run(withInput:) yönteminin varsayılan bir uygulamasını sağlar. İhtiyaç duyarsanız, Dosya Sahibi için kendi AMAppleScriptAction alt sınıfınızı kullanabilirsiniz.
Betiğe Erişme
@NSCopying var script: OSAScript?
Alıcının on run komut işleyicisini içeren betiğini temsil eden bir OSAScript nesnesi.
script
Örnek Özelliği
Alıcının on run komut işleyicisini içeren betiğini temsil eden bir OSAScript nesnesi.
@NSCopying var script: OSAScript? { get set }
Varsayılan olarak script, eylem paketinde saklanan main.applescript'tir. Alıcının betiğini newScript olarak ayarlamak için setScript: kullanabilirsiniz; burada newScript, eylem paketindeki bir betikten örneklenebilecek bir OSAScript nesnesi olmalıdır. script, on run komut işleyicisini içermelidir.
İlişkiler
Miras Aldığı Sınıf
- AMBundleAction