我正在尝试创建一个包含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
答案 0 :(得分:3)
正如我所看到的,约束设置不正确。这就是为什么在第一个屏幕截图上标签被标记为红色。 如果正确设置了约束,则显示的颜色为蓝色。 缺少约束意味着标签没有足够的信息正确显示。
对于您的简单示例,使用自动布局应该足够了。 选择你的视图,在右下角应该是这样一个按钮:
按ist并选择&#34;清除约束&#34; (注意!这将删除视图中的所有当前约束。)
在此之后你可以运行你的程序,标签应该至少出现。
现在再次单击该按钮并选择&#34;添加缺失的约束&#34; ...我希望这会有所帮助。