2016-03-24 11 views
3

NSVIewConroller görünümünde basit NSSearchField var. ve NSSearchFIeld delegesini görüntü denetleyicisine bağladı.Kakao - NSSearchFieldDelegate yöntemleri adı verilmiyor

- (void)searchFieldDidStartSearching:(NSSearchField *)sender NS_AVAILABLE_MAC(10_11); 
{ 
    NSLog(@"search field did start: %@", sender.stringValue); 
} 
- (void)searchFieldDidEndSearching:(NSSearchField *)sender NS_AVAILABLE_MAC(10_11); 
{ 
    NSLog(@"search field did end: %@", sender.stringValue); 

} 

Bu yöntemler başlangıç ​​düzenleme ve bitiş düzenleme çağrısında sakın şu şekildedir: Ve NSSearcHFieldDelegate Yöntemleri uyguladık. Ancak, controlTextDidChange: ve control:textShouldBeginEditing: gibi NSControl varsayılan delegelerini uygularsam ilgili olaylarda çağrılır.

Neden NSSearchFieldDelegate yöntemleri denir değil mi? ..

cevap

2
Step 1: Your controller class needs to inherit from NSSearchFieldDelegate 
Step 2: Implement the below 2 methods 
    func searchFieldDidStartSearching(sender: NSSearchField){ 
     print("searchFieldDidStartSearching \(sender.stringValue)") 
    } 
    func searchFieldDidEndSearching(sender: NSSearchField){ 
     print("searchFieldDidEndSearching \(sender.stringValue)") 
    } 
Step 3: in the viewDidLoad, windowDidLoad, awakeFromNib etc set the delegate for the search field as the view controller/ window controller etc 
self.searchField.delegate = self 

bir çalışma örneği aşağıda gibidir

// AppDelegate.swift 
// NSSearchFieldDelegateSampleCode 
// Created by Debasis Das on 27/05/16. 
// Copyright © 2016 Knowstack. All rights reserved. 

import Cocoa 

@NSApplicationMain 
class AppDelegate: NSObject, NSApplicationDelegate, NSSearchFieldDelegate { 

    @IBOutlet weak var window: NSWindow! 
    @IBOutlet weak var searchField:NSSearchField! 

    func searchFieldDidStartSearching(sender: NSSearchField){ 
     print("searchFieldDidStartSearching \(sender.stringValue)") 
    } 
    func searchFieldDidEndSearching(sender: NSSearchField){ 
     print("searchFieldDidEndSearching \(sender.stringValue)") 
    } 

    func applicationDidFinishLaunching(aNotification: NSNotification) { 
     // Insert code here to initialize your application 
     self.searchField.delegate = self 
    } 

    func applicationWillTerminate(aNotification: NSNotification) { 
     // Insert code here to tear down your application 
    } 


}