2010-12-17 60 views
8

如何以編程方式設置NSView的大小,例如如何以編程方式設置NSView大小?

-(void)awakeFromNib { 
     self.frame.size.width = 1280; // Does nothing... 
     self.frame.size.height = 800; // ...neither does this. 
     ... 

筆尖(Mac OSX)中的大小設置工作正常,但我想在代碼中完成。

回答

15

當你調用self.frame,它返回的數據幀,而不是一個指針。因此,結果中的任何更改都不會反映在視圖中。爲了改變視圖,你必須設置新的幀進行更改後:

- (void)awakeFromNib { 
    NSRect f = self.frame; 
    f.size.width = 1280; 
    f.size.height = 800; 
    self.frame = f; 
    //... 
} 
+2

非常感謝。我失去了生存的意志。現在不僅有一些事情開始發生,但我發現這是一個錯誤的問題 - 下面的答案是。 – 2010-12-18 06:15:36

+0

@ughoavgfhw非常感謝你 – pregmatch 2014-10-21 04:43:37

7

使用方法-setFrameSize:或-setFrame:

+0

正確答案。至少在Swift中,直接更改框架屬性似乎不起作用。 – udondan 2015-01-17 03:33:35

4

要通過編程設置應用程序的大小(這就是我想做的事),你需要做的是: -

- (void)awakeFromNib { 
    ... 
    NSWindow* w = [self window]; 
    NSRect f; 
    f.size.width = 1280; 
    f.size.height = 800; 
    [w setFrame:f display:YES]; 
} 
相關問題