2017-06-06 17 views
0

NSSearchField検索ボタンを押したかどうかを確認するにはどうすればよいですか?私はsearchButtonIsClickedの代わりに行うために必要なもの search button of NSSearchFieldNSSearchFieldの検索ボタンが押されたかどうかを確認する方法

@IBAction func searchTextField(_ sender: NSSearchField) { 
     if `searchButtonIsClicked` { 
      //Code if searchButtonIsClicked 
      return 
     } 
     if sender.stringValue != "" { 
      //My code 
     } 
    } 

+0

あなたがする必要があるのは、その 'UIView'に' tap-gesture' **アクション**を追加することです。 [ここ](https://stackoverflow.com/a/32480721/5175709)を参照してください。実際には、** target-action **という非常に重要な概念があります。ターゲットは通常UIVIewです。このアクションは、ビューがタップされるとトリガーされる関数です。 – Honey

+0

なぜ知りたいですか? – Willeke

+0

@ハニーあなたの情報をありがとうございますが、私の質問は、os xアプリのためであり、iOSではありません。 –

答えて

0

ここに解決策があります。

import Cocoa 

class ViewController: NSViewController { 

    @IBOutlet weak var searchFieldText: NSSearchField! 
    @IBOutlet weak var labelSearchText: NSTextField! 

    @IBAction func searchFieldButton(_ sender: NSSearchField) { 
     if searchFieldText.stringValue != "" { 
      //My code. For example: 
      labelSearchText.stringValue = searchFieldText.stringValue 
     } 

    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
     let cellMenu = NSMenu(title: "Search Menu") 

     var item: NSMenuItem! 
     item = NSMenuItem(title: "Clear", action: nil, keyEquivalent: "") 
     item.tag = Int(NSSearchFieldClearRecentsMenuItemTag) 
     cellMenu.insertItem(item, at: 0) 

     item = NSMenuItem.separator() 
     item.tag = Int(NSSearchFieldRecentsTitleMenuItemTag) 
     cellMenu.insertItem(item, at: 1) 

     item = NSMenuItem(title: "Recent Searches", action: nil, keyEquivalent: "") 
     item.tag = Int(NSSearchFieldRecentsTitleMenuItemTag) 
     cellMenu.insertItem(item, at: 2) 

     item = NSMenuItem(title: "Recents", action: nil, keyEquivalent: "") 
     item.tag = Int(NSSearchFieldRecentsMenuItemTag) 
     cellMenu.insertItem(item, at: 3) 
     searchFieldText.searchMenuTemplate = cellMenu 
    } 

    override var representedObject: Any? { 
     didSet { 
     // Update the view, if already loaded. 
     } 
    } 
} 

ありがとうございました。

+0

これは質問に対する答えではありません。または、「メニューを変更するにはどうすればよいですか?」という質問がありましたか? – Willeke

関連する問題