jp *_*nce 1 iphone objective-c
我已经定义了控制器来接收事件.
@interface salesViewController : UIViewController
<UITextFieldDelegate>{
Run Code Online (Sandbox Code Playgroud)
但是,我的事件都没有发射.
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
//this is not getting called
}
Run Code Online (Sandbox Code Playgroud)
在Interface Builder中,我将TextField委托分配给salesView.
我错过了什么?
您必须正确设置委托.您观察协议,但您需要这样做:
@interface YourController : UIViewController<UITextFieldDelegate> {
IBOutlet UITextField* field;
}
@end
@implementation YourController
-(void)viewDidLoad
{
[field setDelegate:self];
}
Run Code Online (Sandbox Code Playgroud)
你会收到这些活动.或者,您也可以在Interface Builder中设置委托,以及在loadView中以编程方式执行,分配字段和设置委托.
此外,尝试尽可能少地使用NSNotificationCenter.除非您和相关对象之间没有真正的直接路径,否则通知会有些过时.只是对上面答案的一个小评论.
| 归档时间: |
|
| 查看次数: |
2941 次 |
| 最近记录: |