0

このコードが機能しない理由はわかりませんが、修正が簡単であることを願っています。誰かが助けてくれることを願っています。

enterFullScreen と exitFullScreen の 2 つの関数があります。

enterFullScreen メソッドで、NSView のフレームを Window のフレームに設定します。これはフルスクリーン効果があります。これが私の望みです。このメソッド内で古いフレームを保存して、exitFullScreen メソッドでそれらを元に戻すことができるようにしますが、これは機能しません。何の効果もありません。コードは次のとおりです。

NSView oldView, oldViewContainer;

- (void) enterFullScreen:(NSView*)newView
{
    // Store original views
    oldView = newView;
    oldViewContainer = _newViewContainer;

    // Set new views to fit window
    [_newViewContainer setFrame:[_window.contentView frame]];    
    [newView setFrame:[_window.contentView frame]];
}

- (void) exitFullScreen:(NSView*)newView
{
    // Restore old views
    [_newViewContainer setFrame:[oldViewContainer frame]];
    [newView setFrame:[oldView frame]];
}

全画面表示方法は期待どおりに機能しますが、何らかの理由で 2 つのビューを元のサイズ/場所に戻すことができません。

ビュー全体を保存できないためなのか、それとも原点が問題を引き起こしているのかはわかりません。

私はすべての組み合わせを試しました。誰かが助けてくれれば、本当に感謝しています。

前もって感謝します。

4

1 に答える 1

1

oldView を newView に設定して同じビューにするのは望ましくないため、newView のサイズを全画面表示に変更すると、oldView のフレームも全画面表示に設定されます。ビューではなく古いフレームを保存したいので、次のようにします。(元のフレームを保管するため)

サイズを小さくすると、

[newView setFrame:oldFrame];

于 2012-04-29T00:24:50.457 に答える