提示和委托问题

时间:2009-07-21 22:30:56

标签: objective-c iphone cocoa-touch delegates

我有一个类需要向用户询问问题并等待用户响应以确定下一个操作。最好的方法是什么?使用代表?怎么样?我在类中有一个UITextField和一个UITextField。

由于

2 个答案:

答案 0 :(得分:1)

这完全取决于您希望用户提交数据的方式。最友好的用户方式是TahoeWolverine解释并实施- (BOOL)textFieldShouldReturn:(UITextField *)textField中的UITextFieldDelegate。为了使用它,实现textFieldShouldReturn:的类必须在其接口声明中具有<UITextFieldDelegate>协议;此外,有问题的文本字段必须将UITextFieldDelegate - 实现类设置为其委托。在大多数情况下,这些看起来像这样:

@interface SomeViewController : UIViewController <UITextFieldDelegate> {
    UITextField *myField;
}

@property (nonatomic, retain) IBOutlet UITextField *myfield
@end

以及实施中的某个地方:

[[self myField] setDelegate:self];

最后,实施UITextFieldDelegate协议:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if (textField == [self myField]) {
         [self doSomethingWithText:[[self myField] text]];
    }
}

希望有所帮助。

答案 1 :(得分:0)

是的,您应该使用委托,并将其链接到键盘的完成按钮(我假设您向用户呈现键盘)。只需将您的代理链接到键盘的返回键,这应该可以解决问题。