OSX Cocoa NSSearchField清除按钮没有响应点击

sen*_*lim 3 cocoa nsview nssearchfield swift

我放置NSSearchField并设置其边框none,我发现清除按钮不可点击,点击时没有响应.如果我再次设置边框,它工作正常.

在此输入图像描述

我已经调试了几个小时,并发现当我将边框设置为none时,文本编辑器宽度将展开并阴影(覆盖)清除按钮.

截图

在此输入图像描述

查看层次结构调试截图

在此输入图像描述

重现步骤:

  1. 创建一个空的可可项目/应用程序
  2. 放置一个 NSSearchField
  3. 将边框设置为无
  4. 运行应用程序,填写搜索字段并尝试单击清除按钮

这是一个错误吗?或者它打算这样做?

注意:新手可可开发

Eug*_*ski 8

我遇到了这个问题并将其视为Cocoa中的一个错误.但是很容易在自定义控件或视图控制器中修复.只需在界面构建器中保留文本字段,然后通过使用新的CALayer来终止边框.例如:

class ViewController: NSViewController {


@IBOutlet weak var searchField: NSSearchField!

override func viewDidLoad() {
    super.viewDidLoad()

    let maskLayer = CALayer()
    searchField.layer = maskLayer
    maskLayer.backgroundColor = searchField.backgroundColor?.CGColor
}
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我只是在新图层中恢复控制颜色而不保留其他任何内容.它并不完美,但至少可以提供良好的开端.