我正在通過IOS HelloWorld示例工作,並且我有一個關於設置TextField委託的問題。在示例中,它像控件一樣簡單 - 從TextField拖動到ViewController。但現在說我想創建一個自定義類來充當我的委託像這樣:IOS設置自定義委託
#import <Foundation/Foundation.h>
@interface SweetAssDelegate : NSObject <UITextFieldDelegate>
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField;
@end
#import "SweetAssDelegate.h"
@implementation SweetAssDelegate
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField
{
NSLog(@"Calling Delegate");
[theTextField resignFirstResponder];
return YES;
}
@end
如何設置這個類是文本字段的委託?據我所知,沒有辦法通過GUI完成這一任務。我試着手動設置窗口中加載後的代表團,但沒有成功:
#import "ViewController.h"
#import "SweetAssDelegate.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet UITextField *inputField;
@end
- (void)viewDidLoad
{
[super viewDidLoad];
SweetAssDelegate *foo = [[SweetAssDelegate alloc] init];
[self.inputField setDelegate:foo];
NSLog(@"Delegate: %@", self.inputField.delegate);
}
造就了鍵盤的時候我居然得到某種內存異常?有任何想法嗎?謝謝。
作爲一個側面的問題,我應該在哪裏使用viewDidLoad來初始化任何變量?我注意到init不被稱爲?
什麼樣的內存異常? –
應該不需要在'SweetAssDelegate'的接口中聲明' - (BOOL)textFieldShouldReturn:(UITextField *)theTextField;',因爲它已經在你的類實現的'UITextFieldDelegate'中聲明瞭。 –