2015-04-07 2 views
7

Отказ от ответственности: Этот вопрос является расширением this вопросПрозрачный фон NSTextfield NSPopover

Я пытаюсь заполнить таблицу в NSPopover (Как видно на картинке)


Проблема:.
Я не могу сделать прозрачный фон для NSTextField.

Как ни странно, это работает отлично, если вид прилагается к NSWindow


(имена в окне слева возникают прозрачный фон, но такой же вид, если смотреть в NSPopover не показывает прозрачный фон для NSTextfield.) enter image description here

Это ошибка в NSPopover или я что-то не так?


Это мой код для создания ячеек таблицы

func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? { 
    var cell = NSTableCellView(frame: NSMakeRect(0, 0, 100, 40)) 
    var textField = NSTextField(frame: NSMakeRect(0, 0, 50, 20)) 

    // **For transparency** 
    textField.stringValue = nameList[row] 
    textField.bezeled = false 
    textField.editable = false 
    textField.drawsBackground = false 

    cell.addSubview(textField) 
    return cell 
} 

ответ

10

Это проблема с текстовым полем, оказываемыми трепетно, в результате чего белого фона табличных вокруг него также выдаваемым трепетно. Эта вибрация вызывает режим смешивания plusL, поэтому становится невидимым).

Это происходит только в popover, потому что это яркий контекст, и по умолчанию создается внешний вид NSAppearanceNameVibrantLight.

Сессии 209 и 220 от WWDC2014 обсуждают немного больше о динамичности и примечаниях к выпуску 10.10 в NSVisualEffectView/vibrancy.


Чтобы обойти это, вы можете настроить внешний вид представления таблицы на NSAppearanceNameAqua внешний вид.

+0

К сожалению, это одна из наименее очевидных вещей, которые могут пострадать от лица, слегка нового для платформы. – uchuugaka

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