0

我有两个 UIViewController 子类,它们都符合 UITextFieldDelegate 协议。IOW,我有这些课程。

# MyVC1.h
@interface MyVC1 : UIViewController <UITextFieldDelegate>

# MyVC1.m
@interface MyVC1 () {
    // Private variable, so not a property
    UITextField *_myTextField;
}
@end

@implementation MyVC1

- (void)viewDidLoad
{
    _myTextField = [self textFieldwithPlaceHolderText:@"*Text"];
}
@end

MyVC2 类的代码相同,当然类名除外

然而,这是奇怪的部分,我的代码为 MyVC1 编译,但不是为 MyVC2。对于 MyVC2,编译器说““MyVC2”没有可见的@interface 声明了选择器“textFieldwithPlaceHolderText”。MyVC2 缺少什么?我已经进行了双重和三重检查!

4

3 回答 3

0

就像 Jsdodgers 所说,textFieldwithPlaceHolderText 不是 UITextFieldDelegate 的方法。检查两个控制器上的#imports 部分 - 可能 VC1 为 UIViewController 类导入了一个类别,该类别向其中添加了该方法。类别导入如下所示:#import "UIViewController+ _ .h"

于 2013-08-19T02:41:28.823 回答
0

好吧,时间不早了,我困了。MyVC1 定义了 textFieldwithPlaceHolderText 方法,但不是 MyVC2。我剪切/跳过了 viewDidLoad 部分,但忘记剪切/粘贴该方法。很抱歉浪费您的时间。

于 2013-08-19T02:53:56.790 回答
0

复制接口 a 中 myVc2.h 中的方法“textFieldwithPlaceHolderText”并在 myvc2.m 中实现,如果我发布任何错误对不起

于 2013-08-19T15:40:53.767 回答