以编程方式分配代理

时间:2011-07-06 09:24:40

标签: cocoa macos nstextfield nsmatrix

我正在尝试将我的视图控制器指定为我在应用程序中创建的NSTextField的委托:

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

我在myViewController中实现了以下方法

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

两者都没有被召唤。文本字段正在插入NSMatrix。所以我试过

mapMatrix.delegate = (id)myViewController;

并在myViewController中实现了以下方法

- (BOOL)textShouldBeginEditing:(NSText *)textObject;
- (BOOL)textShouldEndEditing:(NSText *)textObject;

同样,两者都没有被召唤。我非常感谢任何意见。

最终我要做的是当用户按Tab键从矩阵中的一个单元格前进到下一个单元格时进行拦截。对不起,应该说明一下。

1 个答案:

答案 0 :(得分:0)

[replaceCell setDelegate:self];

replaceCell.delegate=self;
在此上下文中,

self是您当前的viewcontroller,其中显示此代码。