OSX:自动布局/约束不显示内容
Posted
技术标签:
【中文标题】OSX:自动布局/约束不显示内容【英文标题】:OSX: Auto layout/constraints not displaying content 【发布时间】:2014-11-17 05:22:33 【问题描述】:我正在尝试创建一个包含 2 个标签的视图,并启用了自动布局。运行应用程序时,它会调整屏幕的大小,就像它有内容但什么都没有显示一样。这无需以编程方式设置任何文本。
这是我的看法:
这是我运行应用程序时发生的情况:
如果我继续在“日期”上方的多行标签中添加更多文本:
它对文本更改做出反应,但不显示任何内容。
这是我非常非常简短的 ViewController 代码:
TodayViewController.h:
#import <Cocoa/Cocoa.h>
@interface TodayViewController : NSViewController
@property (weak) IBOutlet NSTextField *multiLine;
@property (weak) IBOutlet NSTextField *theDate;
@end
TodayViewController.m:
#import "TodayViewController.h"
#import <NotificationCenter/NotificationCenter.h>
@interface TodayViewController () <NCWidgetProviding>
@end
@implementation TodayViewController
@synthesize multiLine, theDate;
- (void)viewDidLoad
[super viewDidLoad];
//Weather I programmatically set text or not doesn't change anything.
- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult result))completionHandler
completionHandler(NCUpdateResultNoData);
@end
【问题讨论】:
您的视图是否固定在容器视图的底部? 【参考方案1】:我可以看到约束设置不正确。这就是为什么在第一个屏幕截图中标签被标记为红色的原因。 如果约束设置正确,则显示的颜色为蓝色。 缺少约束意味着没有足够的信息来正确显示标签。
对于您的简单示例,使用自动布局就足够了。 选择您的视图,右下角应该是这样的按钮:
按 ist 并选择“清除约束”(注意!这将删除视图中的所有当前约束)。
在这之后你可以运行你的程序并且标签应该至少会显示出来。
现在再次单击该按钮并选择“添加缺少的约束”...我希望这会有所帮助。
【讨论】:
以上是关于OSX:自动布局/约束不显示内容的主要内容,如果未能解决你的问题,请参考以下文章
当我添加自动布局约束时,为啥我的 textview 不显示?