我在从NSTextField子类调用外部方法时遇到问题。我有一个NSTextField子类,我正在监视文本,当textDidChange我正在调用一个NSObject类的外部方法。由于某种原因,我的方法不会被调用。我希望有人可以解释原因。我的代码如下。感谢。
编辑:修正了drewag建议的代码。
MyTextField.h
#import <Cocoa/Cocoa.h>
@class ObjectController;
@interface MyTextField : NSTextField <NSTextFieldDelegate> {
ObjectController *objectController;
}
@property (strong, nonatomic) ObjectController *objectController;
@end
MyTextField.m
#import "MyTextField.h"
#import "ObjectController.h"
@implementation MyTextField
@synthesize objectController;
- (void)textDidChange:(NSNotification *)notification{
[objectController methodFromOtherClass];
}
@end
ObjectController.h
#import <Foundation/Foundation.h>
@interface ObjectController : NSObject {
}
- (void)methodFromOtherClass;
@end
ObjectController.m
#import "ObjectController.h"
@implementation ObjectController
- (void) methodFromOtherClass {
NSLog(@"Testing");
}
答案 0 :(得分:1)
导致此问题的可能情况有两种:
我认为没有人可以帮助你,因为你没有发布连接代码,也没有设置objectController。
答案 1 :(得分:0)
可能忘了将委托分配给self或者实现textDidChange的任何对象?发生在我身上很多。
答案 2 :(得分:0)
我通过创建ObjectController的实例而不是上面的过程修复了这个问题。
ObjectController *objectController = [ObjectController new];
[objectController methodFromOtherClass];