2016-10-20 13 views
0

. На самом деле существует немного другое поведение в ОС.
Это то, что похоже на popover, поскольку оно анимируется в 10.10 :
enter image description here
Если вы внимательно посмотрите, вы можете увидеть маленькую непрозрачную границу вокруг NSTextFieldNSPopover с NSTextField показывает текстовое поле с непрозрачным фоном при его открытии, а затем становится прозрачным после анимации popover.

Вот как это выглядит в 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 вместо в инициализации, но безрезультатно

ответ

0

Решенный вопрос, в интерфейсе строитель должен был проверить вид и этикетку в «Инспектор визуальных эффектов», который устанавливает wantsLayer = YES

Возможно, возможно, программно тоже

 Смежные вопросы

  • Нет связанных вопросов^_^