如何更改 NSSearchField 中取消按钮的行为?

goh*_*mgx 1 macos cocoa nssearchfield

在 Finder 中,我发现当 NSSearchfield 第一次获得焦点时取消按钮消失,但是当我在搜索字段中输入内容时,取消按钮一直存在,除非我单击它。我还手动创建了一个 nssearchfield 并输入一些单词但是,当我一个一个地删除单词直到什么都没有时,最后,取消按钮消失了。它看起来像 nssearchfield 的默认行为,那么我该如何更改默认行为呢?请帮忙,谢谢!

Sup*_*tar 5

您可以直接访问取消按钮:

迅速

let searchField = NSSearchField()

// Change the button:
if let cell = searchField.cell as? NSSearchFieldCell,
    let cancelButton = cell.cancelButtonCell {
    // Here you can access all properties of a NSButtonCell
}

// Hide the button:
searchField.cell?.cancelButtonCell = nil
Run Code Online (Sandbox Code Playgroud)

目标C

NSSearchField* searchField = [NSSearchField new]

// Change the button:
NSSearchFieldCell* cell = searchField.cell
NSButtonCell* cancelButton = cell.cancelButtonCell
if (cancelButton) {
    // Here you can access all properties of a NSButtonCell
}

// Hide the button:
searchField.cell.cancelButtonCell = nil
Run Code Online (Sandbox Code Playgroud)