2013-12-19 79 views
0

我剛開始用Cocoa開發OS X,但是我遇到了很多基本問題。可可檢測文本改變

如何檢測從NSTextField更改爲像Java中的onTextChanged()類似的文本?
有人說讓委託,但我不明白委託是什麼,它做了什麼。

我使用Xcode 5.0.2的可可框架。

謝謝,我的英語不好對不起:「(

回答

1

在類的聲明中加入NSTextFieldDelegate協議:

@interface MyView : NSView <NSTextFieldDelegate> 

然後在代碼中設置:

myTextField.delegate = self; 

現在你的文本框將向代理髮送通知,並且您可以實現您想要的任何代理功能(請參閱下面鏈接中的NSText委託方法實現)

你說什麼,你現在需要的是實現:

- (void)textDidChange:(NSNotification *)aNotification { 

    //Do stuff here 

} 

參考:NSTextField Class

+0

嘛,,我得到這個錯誤 '找不到接口聲明「的UIView」的超'我的看法';你的意思是'NSView'?' –

+0

只是編寫NSView而不是UIView,因爲你編程的可可不是可可觸摸 – dehlen

+0

urgh ..我無法理解所有的.... myTextField.delegate返回一個錯誤 –

0

在-儘管寫代碼,你可以通過有約束力和執行同樣的事情。只需將您的textfield連接到代表fileowners。這樣的下面: -

enter image description here

,然後實現此方法不同。所以,沒有必要界定NSTextFieldDelegate 在頭文件,無需通過代碼來設置delegate在實現文件: -

-(void)controlTextDidChange:(NSNotification *)obj 
{ 

}