【问题标题】:NSButton won't let me set imagePosition propertyNSButton 不允许我设置 imagePosition 属性
【发布时间】:2015-08-26 18:37:04
【问题描述】:

我正在尝试快速构建一个菜单栏应用程序。我想为状态项设置图像和文本。显然 NSStatusItem 自 10.10 以来已弃用设置自定义视图,这很好,因为我能够在状态项的按钮上设置图像和文本。但是,由于某种原因,我无法设置 imagePosition 属性,因此文本和图像重叠。

这是我的代码:

let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)

  func applicationDidFinishLaunching(aNotification: NSNotification) {
    let icon = NSImage(named: "statusIcon")
    icon!.setTemplate(true) // best for dark mode

    statusItem.button!.image = icon
    statusItem.button!.imagePosition = ImageLeft
    statusItem.button!.title = "Hello, world"

    statusItem.menu = menu;
  }

问题是 Xcode 在这一行给我一个错误:

statusItem.button!.imagePosition = ImageLeft

它说“使用未解析的标识符 'ImageLeft'”,但从文档 (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSCell_Class/index.html#//apple_ref/c/tdef/NSCellImagePosition) 中可以看出,这是我想要使用的标识符。

谁能帮忙?

【问题讨论】:

  • 当你改用 2 的 int 时会发生什么?
  • 它给出了一个不同的错误“无法将'Int'类型的值分配给'NSCellImagePosition'类型的值”
  • 是的,这是正确的信息......看起来你已经找到了答案:)

标签: macos swift appkit


【解决方案1】:

我想通了。显然我有很多关于 Swift 语法的知识。

这一行让它可以工作:

statusItem.button!.imagePosition = NSCellImagePosition.ImageLeft

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2013-05-20
    • 2018-11-20
    相关资源
    最近更新 更多