Xcode 创建视图和项目数组+;编辑它们

Xcode 创建视图和项目数组+;编辑它们,xcode,swift,macos,Xcode,Swift,Macos,我正试图用Swift在OSX上制作一个状态栏应用程序。我想以编程方式为每个连接到我的网站的人创建一个视图 在这些视图中,我希望: 形象 标签 进度条 我希望这些项目可以随时编辑 这是我的实际代码: var items: [AnyObject] = [] var views: [AnyObject] = [] var images: [AnyObject] = [] var texts: [AnyObject] = [] var bars: [AnyObject] = [] for var

我正试图用Swift在OSX上制作一个状态栏应用程序。我想以编程方式为每个连接到我的网站的人创建一个视图

在这些视图中,我希望:

  • 形象
  • 标签
  • 进度条
我希望这些项目可以随时编辑

这是我的实际代码:

var items: [AnyObject] = []
var views: [AnyObject] = []
var images: [AnyObject] = []
var texts: [AnyObject] = []
var bars: [AnyObject] = []

for var i = 0; i < 5; i++ {
        var item : NSMenuItem = NSMenuItem(title: "item\(i)", action: Selector("nil"), keyEquivalent: "")
        statusItem.menu!.addItem(NSMenuItem.separatorItem())
        statusItem.menu!.addItem(item)
        statusItem.menu!.addItem(NSMenuItem.separatorItem())
        items.append(item)

        let view = NSView(frame: CGRect(x: 0, y: 0, width: 265, height: 71))
        item = Menu.itemWithTitle("item\(i)")!
        item.view = view
        views.append(view)

        var image: NSImageView
        image = NSImageView(frame: CGRect(x: 20, y: 9, width: 50, height: 50))
        image.image = NSImage(named: "MacbookAir")
        view.addSubview(image)
        images.append(image)

        var text: NSTextField
        text = NSTextField(frame: CGRect(x: 96, y: 42, width: 158, height: 17))
        text.stringValue = "MacBook Air"
        text.editable = false
        text.bordered = false
        text.backgroundColor = NSColor(white: 1, alpha: 0)
        view.addSubview(text)
        texts.append(text)

        var bar: NSProgressIndicator
        bar = NSProgressIndicator(frame: CGRect(x: 82, y: 7, width: 163, height: 20))
        bar.indeterminate = false
        bar.incrementBy(20.0)
        view.addSubview(bar)
        bars.append(bar)
    }

}
然后它将是可编辑的,如下所示:

bar[0].incrementBy(50.0) //incrementing the bar with the array index
这绝对是行不通的。。。 非常感谢您的帮助

编辑(添加更多信息):

当我打印所有数组时,我会得到以下所有代码:

   /////Printing Items :
[<NSMenuItem: 0x6000000a1f20 item0>, <NSMenuItem: 0x6000000a2100 item1>, <NSMenuItem: 0x6000000a2340 item2>, <NSMenuItem: 0x6000000a2580 item3>, <NSMenuItem: 0x6000000a27c0 item4>]
/////Printing Views :
[<NSView: 0x600000120820>, <NSView: 0x6000001208c0>, <NSView: 0x600000120960>, <NSView: 0x600000120a00>, <NSView: 0x600000120aa0>]
/////Printing Texts :
[<NSTextField: 0x6080001e0d00>, <NSTextField: 0x6000001e0400>, <NSTextField: 0x6000001e0700>, <NSTextField: 0x6000001e0900>, <NSTextField: 0x6000001e0b00>]
/////Printing images :
[<NSImageView: 0x600000161f80>, <NSImageView: 0x600000161ec0>, <NSImageView: 0x600000162040>, <NSImageView: 0x600000162100>, <NSImageView: 0x6000001621c0>]
/////Printing Bars :
[<NSProgressIndicator: 0x6080001e0e00>, <NSProgressIndicator: 0x6000001e0600>, <NSProgressIndicator: 0x6000001e0800>, <NSProgressIndicator: 0x6000001e0a00>, <NSProgressIndicator: 0x6000001e0c00>]
//打印项目:
[, , ]
/////打印视图:
[, , ]
/////印刷文本:
[, , ]
/////打印图像:
[, , ]
/////打印条:
[, , ]

有没有办法修改条形图、文本等

您是否考虑线程

由于NSStatusbar是UI的一部分,它可能是在主线程上启动的。因此,如果有任何问题,我会通过以下方式对其进行更新:

//Swift
dispatch_async(dispatch_get_main_queue()){
    //do what you have to do here
}

你的代码到底出了什么问题?@rocky嘿,如果你能帮我找到一些东西,我更新了我的帖子。。。谢谢“那绝对不起作用”是什么意思?这个问题的iOS部分是什么?如果没有,请去掉标签。这意味着“我知道我做得不对,因为在我的脑海中我想做的事情是:”下面的代码不起作用(给我看了很多错误)
//Swift
dispatch_async(dispatch_get_main_queue()){
    //do what you have to do here
}