NSSearchField:如何隐藏图标和边框?
NSSearchField: How to hide icon and border?
这有点像 问题的重复。因为我所知道的关于 Swift 的一切都是 Swift3,我想知道是否有人可以 "translate" 这个答案中的建议解决方案。
还有:
我做了一个无边框的NSSearchfield,放在framed view里,还是显示灰色边框。我很好奇如何禁用动画灰色边框,甚至可能如何更改灰色 "search" 线的颜色。
我丑陋的结果现在看起来像这样:
如果有人能告诉我如何管理这个困难的 NSSearchfield,那将是一个很大的帮助。
//更新
根据 firstinq 的回答,图标现在消失了,这很好。但是,仍然有这个令人不安的动画灰色边框。我无法理解:NSSearchFielt 在 NSView(蓝色边框)内。所以 NSView 之外的所有东西都应该被隐藏,对吧?那么为什么我仍然看到灰色边框? cell.isBordered = false
没有效果。
有什么建议如何处理吗?
这是我绘制 NSView 边框的方式:
class SearchFieldBorder: NSView {
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
self.layer?.borderWidth = 1
self.layer?.borderColor = NSColor.blue.cgColor
}
}
要隐藏图标:将单元格转换为 NSSearchFieldCell 并将单元格的 searchButtonCell 设置为透明。可能的 swift3 版本:
if let cell = self.searchField.cell as? NSSearchFieldCell {
cell.searchButtonCell?.isTransparent = true
}
这里的searchField是一个NSSearchField
要移除焦点边框:
searchField.focusRingType = .none
要更改灰色 line/cursor 最好继承 NSSearchField 并覆盖这些方法。
你可以从 here.
得到一个想法
我会补充上面的答案。
要隐藏搜索图标,请将 nil 分配给 SearchButtonCell 属性
if let cell = searchField.cell as? NSSearchFieldCell {
cell.searchButtonCell = nil
}
这有点像
还有:
我做了一个无边框的NSSearchfield,放在framed view里,还是显示灰色边框。我很好奇如何禁用动画灰色边框,甚至可能如何更改灰色 "search" 线的颜色。
我丑陋的结果现在看起来像这样:
如果有人能告诉我如何管理这个困难的 NSSearchfield,那将是一个很大的帮助。
//更新
根据 firstinq 的回答,图标现在消失了,这很好。但是,仍然有这个令人不安的动画灰色边框。我无法理解:NSSearchFielt 在 NSView(蓝色边框)内。所以 NSView 之外的所有东西都应该被隐藏,对吧?那么为什么我仍然看到灰色边框? cell.isBordered = false
没有效果。
有什么建议如何处理吗?
这是我绘制 NSView 边框的方式:
class SearchFieldBorder: NSView {
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
self.layer?.borderWidth = 1
self.layer?.borderColor = NSColor.blue.cgColor
}
}
要隐藏图标:将单元格转换为 NSSearchFieldCell 并将单元格的 searchButtonCell 设置为透明。可能的 swift3 版本:
if let cell = self.searchField.cell as? NSSearchFieldCell {
cell.searchButtonCell?.isTransparent = true
}
这里的searchField是一个NSSearchField
要移除焦点边框:
searchField.focusRingType = .none
要更改灰色 line/cursor 最好继承 NSSearchField 并覆盖这些方法。 你可以从 here.
得到一个想法我会补充上面的答案。 要隐藏搜索图标,请将 nil 分配给 SearchButtonCell 属性
if let cell = searchField.cell as? NSSearchFieldCell {
cell.searchButtonCell = nil
}