Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何限制非彩色井的颜色_Swift_Macos_Cocoa - Fatal编程技术网

Swift 如何限制非彩色井的颜色

Swift 如何限制非彩色井的颜色,swift,macos,cocoa,Swift,Macos,Cocoa,我需要给我的用户从一组12种颜色中选择颜色的选项,我的想法是使用NSColorWell,但我找不到方法将颜色选择器中的选项限制为仅12个衣领。对于未来的谷歌,将NSPoupButton子类化,并: private var colors: [NSColor]? func setColors(_ colors: [NSColor]) { self.colors = colors self.reloadMenu() } private func reloadMenu(){

我需要给我的用户从一组12种颜色中选择颜色的选项,我的想法是使用NSColorWell,但我找不到方法将颜色选择器中的选项限制为仅12个衣领。

对于未来的谷歌,将NSPoupButton子类化,并:

private var colors: [NSColor]?

func setColors(_ colors: [NSColor]) {
    self.colors = colors
    self.reloadMenu()
}

private func reloadMenu(){

    guard let colorsArray = colors else { return }

    var image: NSImage

    for index in 0..<itemArray.count {

        image = NSImage(size: NSSize(width: 100, height: 13))
        image.lockFocus()
        let color = colorsArray[index]
        color.setFill()
        let path = NSBezierPath(rect: NSRect(x: 0, y: 0, width: 100, height: 13))
        path.fill()
        image.unlockFocus()

        itemArray[index].image = image
    }
    self.synchronizeTitleAndSelectedItem()
    self.display()
}
private var colors:[NSColor]?
func setColors(colors:[NSColor]){
self.colors=颜色
self.reloadMenu()
}
private func重载菜单(){
guard let colorsArray=colors else{return}
var图像:NSImage

对于0中的索引。要像使用下拉菜单一样富有创造性,将彩色图像作为菜单项。NSColorWell是一个麻烦制造者。最好不要使用它。谢谢你的建议,它会指引我正确的方向。