OSX:自动布局/约束不显示内容

时间:2014-11-17 05:22:33

标签: ios objective-c macos autolayout ios8-today-widget

我正在尝试创建一个包含2个标签的视图,并启用了自动布局。在运行应用程序时,它会调整屏幕的大小,如果它有内容但没有显示任何内容。这不是以编程方式设置任何文本。

这是我的观点:

My view

当我运行应用程序时会发生这种情况:

Issue

如果我继续向“日期”上方的多行标签添加更多文字:

Issue2

它会对文本更改做出反应,但不会显示任何内容。

这是我非常非常简短的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 个答案:

答案 0 :(得分:3)

正如我所看到的,约束设置不正确。这就是为什么在第一个屏幕截图上标签被标记为红色。 如果正确设置了约束,则显示的颜色为蓝色。 缺少约束意味着标签没有足够的信息正确显示。

对于您的简单示例,使用自动布局应该足够了。 选择你的视图,在右下角应该是这样一个按钮: enter image description here

按ist并选择&#34;清除约束&#34; (注意!这将删除视图中的所有当前约束。)

在此之后你可以运行你的程序,标签应该至少出现。

现在再次单击该按钮并选择&#34;添加缺失的约束&#34; ...我希望这会有所帮助。