奇怪的 NSButton 创建

Weird NSButton creation

我有一个像这样的简单 AppDelegate:

class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {

  @IBOutlet weak var window: NSWindow!
  @IBOutlet weak var field: NSView!

  let button = NSButton()
  let buttons = [NSButton(), NSButton(), NSButton()]

  func applicationDidFinishLaunching(aNotification: NSNotification) {
    button.frame = NSMakeRect(30, 60, 80, 25)
    button.title = "ok"
    field.addSubview(button)

    for index in 0...2 {
      let buttonI = buttons[index]
      buttonI.frame = NSMakeRect(30+CGFloat(index)*90, 30, 80, 25)
      buttonI.title = "not ok:\(index)"
      field.addSubview(buttonI)
    }
  }
}

(您可以通过将 field 与 window 的内容视图中的自定义视图连接来测试以上内容)。

当我 运行 时,我得到以下按钮外观:

为什么单个按钮看起来没问题,而数组中的按钮却不行?

你只需要设置bezelStyle:

button.bezelStyle = .RoundedBezelStyle

buttonI.bezelStyle = .RoundedBezelStyle