簡體   English   中英

可可調整窗口大小以適合屏幕

[英]Cocoa resize window to fit screen

我有2個監視器,我想將我的videoWindow放置並縮放到第二個監視器的大小。 我想以編程方式執行此操作,因為第二台顯示器的分辨率可能會發生變化。 我能夠將窗口放置在第二個監視器的左下角,但是我無法縮放它以適合它。

此行的警告:

[self.videoWindow setFrame: screenRect];

是:“ NSWindow”可能不響應“ setFrame”

// inside my .h file
@property (assign) IBOutlet NSWindow *videoWindow;


// inside my .m file
- (void)windowControllerDidLoadNib:(NSWindowController *) aController
{
    [super windowControllerDidLoadNib:aController];

    NSRect videoPreviewScreenRect;
    NSArray *screenArray = [NSScreen screens];

    //Using index of 1, to get secondary monitor
    NSScreen *videoPreviewScreen = [screenArray objectAtIndex: 1];

    NSRect screenRect = [videoPreviewScreen frame];
    videoPreviewScreenRect = [videoPreviewScreen visibleFrame];

    // Get and set the screen origin based on the second monitors origin
    NSPoint videoScreenOrigin ;
    videoScreenOrigin.x = videoPreviewScreenRect.origin.x;
    videoScreenOrigin.y = videoPreviewScreenRect.origin.y;
    [self.videoWindow setFrameOrigin: videoScreenOrigin];

    // **** THIS LINE DOESN'T WORK ****
    [self.videoWindow setFrame: screenRect];

    [self.videoWindow setBackgroundColor: NSColor.blackColor];
    [self.videoWindow display];
    [self.videoWindow makeKeyAndOrderFront:nil];
}

我能夠找出問題所在。

[self.videoWindow setFrame: screenRect];

需要更改為:

[[self videoWindow] setFrame:screenRect display:YES animate:NO]; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM