【问题标题】:OSX: Auto layout/constraints not displaying contentOSX:自动布局/约束不显示内容
【发布时间】: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

【问题讨论】:

  • 您的视图是否固定在容器视图的底部?

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


【解决方案1】:

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

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

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

在这之后你可以运行你的程序并且标签应该至少会显示出来。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多