2017-08-05 6 views
0

私は非常に迅速です。 プログラムでNSSearchFieldをリセットしようとしていますが、これを行う適切な方法が見つかりませんでした。私はこのようにswift osx NSSearchFieldリセットをプログラムで

import Cocoa 

extension NSSearchField { 
    func reset() { 
     self.stringValue = "" 
     let cell = self.cell as? NSSearchFieldCell 
     let cancelButton = cell?.cancelButtonCell 
     cancelButton?.performClick(self) 
    } 

} 

EDITやってる瞬間 : 私の問題はNSSearchFieldDelegateに機能controlTextDidChangeが呼び出されていないということです。

これを行うにはどうすればいいですか? おかげ

+0

、例のですか? – adev

+0

あなたは何をしようとしているのか分かりません。なぜあなたはNSSearchFieldの緊張感を書く必要がありますか? cancelButton = cell?.cancelButtonCell ??? –

+0

@adevこれはsearchFieldのtextViewを空にします – justBorn

答えて

0

はそうcontrolTextDidChangeがと呼ばれることはありません、あなたのデリゲートを設定します。

あなたの拡張子は問題ではありません。ここ

あなたは `self.stringValue = ""`やるとどう

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) 
} 
} 
関連する問題