NSButton в Каталине не имеет выбранного государства - PullRequest
6 голосов
/ 08 октября 2019

У меня установлен флажок NSButton со следующим кодом на Catalina (Мохаве в порядке):

let checkbox = NSButton(frame: NSRect(x: 0, y: 0, width: 200, height: 32))
checkbox.setButtonType(.switch)
checkbox.title = "Sustain"
checkbox.state = .off
self.view.addSubview(checkbox)

Выглядит нормально, когда я загружаю приложение

Off

Но как только я проверю это, отметка о том, чего я ожидаю, там не будет

On

Если я загружаю отладчик визуальной иерархии, я вижу это нормально, я пытался поместить этот код прямо в новое приложение, и оно работает, но в моем приложении он скрыт, почти как-то переопределяет его ... любойпомощь приветствуется

Это также происходит на NSPopUpButtons .... без границ: -s

Обновление: 14 октября 2019 года

Как указано в комментарияхПохоже, это ошибка Xcode 11. Xcode 10.3 правильно отображает кнопку на Catalina.

Обновление: 10 октября 2019 года

Странно, создание подкласса и настройка CIFilterпоказывает элемент флажка, вам нужно сделать это только с одним NSButton, а затем все остальные работают внезапно: -s

import AppKit

class Checkbox : NSButton {

init() {
  super.init(frame: .zero)
    addFilter()
}

required init?(coder: NSCoder) {
    super.init(coder: coder)
    addFilter()
}

// add random cifilter
func addFilter() {
    let colorFilter = CIFilter(name: "CIFalseColor")!
    colorFilter.setDefaults()
    colorFilter.setValue(CIColor(cgColor: NSColor.black.cgColor), forKey: "inputColor0")
    colorFilter.setValue(CIColor(cgColor: NSColor.white.cgColor), forKey: "inputColor1")
    self.contentFilters = [colorFilter]
}


}

То же самое для выпадающего списка работает, но оно невидимо до тех пор, пока вы не нажмете на него ... начинающее ощущаться как ошибка Каталины

...