2015-07-02 82 views
1

我有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]; 
} 

回答

1

我能找出的问题是响应。

[self.videoWindow setFrame: screenRect]; 

需要改变这样:

[[self videoWindow] setFrame:screenRect display:YES animate:NO]; 
相关问题