2011-07-06 8 views
2

私は、アプリケーション内から作成NSTextFieldへの委譲としての私のビューコントローラを割り当てるしようとしています:デリゲートを割り当て、プログラム

replaceCell = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 60, 60)]; 
[replaceCell setDelegate:(id)myViewController]; 

私は

- (void)controlTextDidBeginEditing:(NSNotification *)aNotification 
- (void)controlTextDidEndEditing:(NSNotification *)aNotification 

myViewControllerに次のメソッドを実装していますどちらも呼ばれない。テキストフィールドがNSMatrixに挿入されています。だから私は

mapMatrix.delegate = (id)myViewController; 

を試していないし、ここでも
- (BOOL)textShouldBeginEditing:(NSText *)textObject; 
- (BOOL)textShouldEndEditing:(NSText *)textObject; 

myViewController

に次のメソッドを実装し、どちらも呼び出されます。私は非常にすべての入力を感謝します。

最終的に私がしようとしているのは、ユーザーがタブキーを押して行列の1つのセルから次のセルに進むときのインターセプトです。申し訳ありませんが、まずはそのことを述べておきます。この文脈で

+1

'myViewController'が設定されていて、テキストフィールドのデリゲートとして設定する前に' nil' **と異なるのですか? –

+0

@ Bavariousさんのコメントに加えて、どの方法でテキストフィールドを作成していますか? –

+0

はい、確かにそれがゼロでないことを確かめてください。テキストフィールドが作成されるメソッドは、myViewControllerとは異なるオブジェクトにあります。私は以下のようにselfを使ってみましたが、デリゲートメソッドを同じオブジェクトに配置しましたが、それでも動作しませんでした。 –

答えて

0
[replaceCell setDelegate:self]; 

または

replaceCell.delegate=self; 

selfこのコードが表示され、現在のViewControllerです。

+1

あなたの最後の文章は意味をなさない。 – ThiefMaster

+0

最後の文を修正しました。 – TechZen

+0

テキストフィールドが作成されるメソッドは、myViewControllerとは異なるオブジェクトにあります。だから、上記のようにselfを使ってみました。そして、同じオブジェクトにデリゲートメソッドを配置しました。それでも動作しませんでした。 –