Hello masters;
I’m new with AppleScriptObjC.
My function setWallpaper have to be called in AppleScript giving the Wallpaper and the screen (screenSelected),
but i don’t know how to call the function correctly.
I tried with:
1:
tell WorkersController to setWallpaper_Wallpaper_screenSelected_(Desktop1, MyScreen)
2:
WorkersController's setWallpaper_Wallpaper_screenSelected_(Desktop1, MyScreen)
3:
WorkersController's setWallpaper_screenSelected_(Desktop1, MyScreen)
and others I already forgot…
The functions:
MyScreensFunction() returns the number of screen
set WorkersController to (current application's class "Worker"'s alloc)'s init
set MyScreen to (WorkersController's MyScreensFunction())
- (void)setWallpaper: (NSString *)Wallpaper:(NSNumber *)screenSelected{
NSWorkspace *sws = [NSWorkspace sharedWorkspace];
NSURL *image = [NSURL fileURLWithPath:Wallpaper];
NSError *err = nil;
NSScreen *iterScreen;
NSArray *screens = [NSScreen screens];
for (iterScreen in screens)
{
if ([[iterScreen deviceDescription] objectForKey:@"NSScreenNumber"] == screenSelected)
{
NSDictionary *opt = [sws desktopImageOptionsForScreen:iterScreen];
[sws setDesktopImageURL:image forScreen:iterScreen options:opt error:&err];
if (err) {
NSLog(@"%@",[err localizedDescription]);
}else{
NSNumber *scr = [[iterScreen deviceDescription] objectForKey:@"NSScreenNumber"];
NSLog(@"Set %@ for space %i on screen %@",[image path],[self spaceNumber],scr);
}
}
}
}
Thanks guys