2013-03-18 25 views
0

我在窗口底部有一個NSTextField控件。 我需要根據某些條件顯示或隱藏。如何在隱藏或顯示控件後重新繪製窗口

在初始狀態下,控件被隱藏。 窗口顯示控件位置上的空白區域。 在運行時,控制應該變爲可見

mpTxtCtrl.hidden = NO; 

它不會發生。

任務:

1顯示/隱藏控制。

2根據控件的狀態調整主窗口的大小。

我找不到任何教程如何管理可可中的佈局。 我會很感激任何幫助!

+0

是否使用自動佈局? – 2013-03-18 09:11:55

+0

你的控制權是什麼?複選框,收音機等? – 2013-03-18 09:13:18

+0

Anoop Vaidya,不,我不使用自動佈局。我是MacOs編程新手。請給我一個適當的教程鏈接。目標控件 - 是一個文本字段(NSTextField)。 – kaa 2013-03-18 09:32:38

回答

0

檢查這個代碼,如果你會發現一些有用的東西here

-(void)awakeFromNib{ 
    [self.label setHidden:YES]; 
} 


- (IBAction)showHide:(id)sender { 
    NSLog(@"%@",[sender title]); 

    if ([[sender title] isEqualToString:@"Hide"]) { 
     [self.label setHidden:YES]; 
     [sender setTitle:@"Show"]; 
    } 
    else if ([[sender title] isEqualToString:@"Show"]){ 
     [self.label setHidden:NO]; 
     [sender setTitle:@"Hide"]; 

    } 

} 

- (IBAction)maximize:(id)sender { 

    NSArray *screens = [NSScreen screens]; 
    NSRect screenRect; 
    for (NSInteger index=0; index < [screens count]; index++) { 
     NSScreen *screen = screens[index]; 
     screenRect = [screen visibleFrame]; 
    } 
    [self.window setFrame:screenRect display:YES]; 
} 
+0

那麼,什麼是提問者的問題,以及這段代碼如何解決它? – 2013-03-18 10:30:19

+0

@PeterHosey:他需要在運行時隱藏/顯示控件。甚至可以調整窗口大小。 – 2013-03-18 10:34:32

+0

這是他的目標,而不是他實現這個目標的問題。 – 2013-03-18 10:38:22

1

當運行控制應成爲可見

mpTxtCtrl.hidden = NO; 

它不會發生。

確保將mpTxtCtrl插座連接到筆尖的文本字段。忘記將你的插座連接到任何東西都是沒有任何事情發生的主要原因。

我找不到任何教程如何管理可可中的佈局。

編輯筆尖時切換到文件檢查器並打開「使用自動佈局」。無論何時沿着Aqua指南放置視圖(正確放置和調整視圖大小時出現藍線),Xcode都會創建約束,而Cocoa會在視圖大小和窗口大小發生變化時強制執行這些約束。

更多信息:

+0

彼得,謝謝你的回答。我將更詳細地研究擬定的指導方針,我認爲他們會幫助我。 – kaa 2013-03-18 10:57:01