2

デスクトップの壁紙の位置を「StretchtoFillScreen」に設定するMacAppStore準拠の方法はありますか?

4

2 に答える 2

4

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

于 2012-04-16T19:50:47.107 に答える
3

残念ながら、デスクトップイメージオプションを設定するMacAppStore準拠の方法はありません。デスクトップイメージに関して使用できる方法は次のとおりです。

– desktopImageURLForScreen:
– setDesktopImageURL:forScreen:options:error:
– desktopImageOptionsForScreen:

AppleScriptを実行することでそれができるかもしれませんが、Appleはそれを好まないと思います。

お役に立てれば!

編集:

[screenOptions setObject:scalingFactor forKey:NSWorkspaceDesktopImageScalingKey];
[[NSWorkspace sharedWorkspace] setDesktopImageURL:imageURL forScreen:curScreen options:screenOptions error:&error];
于 2012-04-16T19:19:20.600 に答える