1

我试图创建一个包含 2 个标签的视图,并启用了自动布局。运行应用程序时,它会调整屏幕的大小,就像它有内容但什么都没有显示一样。这无需以编程方式设置任何文本。

这是我的看法:

我的观点

这是我运行应用程序时发生的情况:

问题

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

问题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
4

1 回答 1

3

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

对于您的简单示例,使用自动布局就足够了。选择您的视图,右下角应该是这样的按钮: 在此处输入图像描述

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

在此之后,您可以运行您的程序,并且标签应该至少显示出来。

现在再次单击按钮并选择“添加缺少的约束”......我希望这会有所帮助。

于 2014-11-17T09:07:14.060 回答