作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 swift 还很陌生,我正在尝试以编程方式重置 NSSearchField,但我没有找到正确的方法来执行此操作!目前我正在这样做
import Cocoa
extension NSSearchField {
func reset() {
self.stringValue = ""
let cell = self.cell as? NSSearchFieldCell
let cancelButton = cell?.cancelButtonCell
cancelButton?.performClick(self)
}
}
编辑:我的问题是,在 NSSearchFieldDelegate 中,未调用函数 controlTextDidChange。
如何调用来做到这一点?谢谢
最佳答案
设置您的委托(delegate),否则将不会调用 controlTextDidChange:
您的扩展不是问题。
这是一个例子,
class ViewController: NSViewController, NSSearchFieldDelegate {
// Search Field
@IBOutlet weak var mySearchField: NSSearchField!
override func viewDidLoad() {
super.viewDidLoad()
// Don't forget to set delegate
self.mySearchField.delegate = self
}
// Driver program
@IBAction func onPress(_ sender: Any) {
// clear search field
self.mySearchField.reset()
}
// View output
override func controlTextDidChange(_ obj: Notification) {
print("--");
}
}
extension NSSearchField {
func reset() {
self.stringValue = ""
//let cell = self.cell as? NSSearchFieldCell
//let cancelButton = cell?.cancelButtonCell
//cancelButton?.performClick(self)
}
}
关于swift osx NSSearchField 以编程方式重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45517140/
我是一名优秀的程序员,十分优秀!