2013-03-18 22 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