2016-10-20 29 views
0

实际上在操作系统中有一些不同的行为
这是弹出窗口的样子,因为它在10.10中打开动画:
enter image description here
如果你仔细观察,你可以看到周围的NSTextField带有NSTextField的NSPopover显示文本字段,它在打开时显示不透明背景,然后在弹出动画后变为透明

这里有点不透明的边界是什么样子的10.11:
enter image description here 只是有一个直线上升不透明背景

而这里的酥料饼的样子动画之后,尽显:
enter image description here

修改酥料饼的外观并没有解决这个问题:
enter image description here

我们在这里是一个NSViewController,它只有一个容器NSView和一个NSTextField。该容器是这样我们就可以通过自动布局约束

@interface MessageViewController() 
@property (strong) IBOutlet NSTextField *messageLabel; 
@property (weak) IBOutlet NSLayoutConstraint *rightPadding; 
@property (weak) IBOutlet NSLayoutConstraint *topPadding; 
@property (weak) IBOutlet NSLayoutConstraint *bottomPadding; 
@property (weak) IBOutlet NSLayoutConstraint *leftPadding; 
@end 

@implementation MessageViewController 

@synthesize message = _message; 

- (instancetype)initWithMessage:(NSString *)message andPadding:(CGFloat)padding 
{ 
    self = [super init]; 
    if(self) 
    { 
     [self loadView]; 
     self.rightPadding.constant = padding; 
     self.topPadding.constant = padding; 
     self.bottomPadding.constant = padding; 
     self.leftPadding.constant = padding; 
     self.message = message; 
    } 
    return self; 
} 

- (void)setMessage:(NSString *)message 
{ 
    _message = message; 
    self.messageLabel.stringValue = message; 
} 

- (NSString *)message 
{ 
    return _message; 
} 

这就是为什么你可以看到边框,只有酥料饼的部分是不透明的添加填充。这是内部NSTextField有背景/边框,容器视图保持透明背景。它不是直到酥料饼尽显的背景/边框变为透明以及

而且这里是xib
enter image description here

怎么会这样?

我已经尝试设置背景颜色属性,并试图设定-awakeFromNib,而不是在init属性,但无济于事

回答

0

解决了这个问题,在Interface Builder不得不检查视图和标签“查看效果检查器”,其集合wantsLayer = YES

也许可以通过编程方式完成