我试图将我的视图控制器作为我在应用程序内创建的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键从矩阵中的一个单元格前进到下一个单元格时进行拦截。抱歉,应该先说一下。

最佳答案

[replaceCell setDelegate:self];


要么

replaceCell.delegate=self;


在这种情况下,self是显示此代码的当前视图控制器。

关于cocoa - 以编程方式分配代表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6594168/

10-09 08:09