デスクトップの壁紙の位置を「StretchtoFillScreen」に設定するMacAppStore準拠の方法はありますか?
2 に答える
Appleのこのコードサンプルは、問題の概要と、Cocoaで問題を適切にコーディングする方法を提供します。顕著なコードスニペットは次のように見えます。
- (void)updateScreenOptions:(NSScreen*)screen
{
if (screen)
{
NSDictionary *screenOptions = [[NSWorkspace sharedWorkspace] desktopImageOptionsForScreen:curScreen];
// the value is an NSNumber containing an NSImageScaling (scaling factor)
NSNumber *scalingFactor = [screenOptions objectForKey:NSWorkspaceDesktopImageScalingKey];
[scalingPopup selectItemAtIndex:[scalingFactor integerValue]];
// the value is an NSNumber containing a BOOL (allow clipping)
NSNumber *allowClipping = [screenOptions objectForKey:NSWorkspaceDesktopImageAllowClippingKey];
[[clippingCheckbox cell] setState:[allowClipping boolValue]];
// the value is an NSColor (fill color)
NSColor *fillColorValue = [screenOptions objectForKey:NSWorkspaceDesktopImageFillColorKey];
if (fillColorValue)
[fillColor setColor:fillColorValue];
}
}
いくつかの正誤表で述べたように、質問を解決するためにここで呼び出す正しいメソッドは、とのように見えます[screenOptions setObject:scalingFactor forKey:NSWorkspaceDesktopImageScalingKey]
。[[NSWorkspace sharedWorkspace] setDesktopImageURL:imageURL forScreen:curScreen options:screenOptions error:&error]
これにより、目的の機能が提供されます。
これは共同作業であったことを私は自由に認めますが、正しい解決策に失敗したようです。
(正しいスケーリングキーを含むNSImageScaling
列挙との追加情報。)NSWorkspace
残念ながら、デスクトップイメージオプションを設定するMacAppStore準拠の方法はありません。デスクトップイメージに関して使用できる方法は次のとおりです。
– desktopImageURLForScreen:
– setDesktopImageURL:forScreen:options:error:
– desktopImageOptionsForScreen:
AppleScriptを実行することでそれができるかもしれませんが、Appleはそれを好まないと思います。
お役に立てれば!
編集:
[screenOptions setObject:scalingFactor forKey:NSWorkspaceDesktopImageScalingKey];
[[NSWorkspace sharedWorkspace] setDesktopImageURL:imageURL forScreen:curScreen options:screenOptions error:&error];