我应该使用哪种委托方法来响应文本字段的点击?

时间:2009-03-25 09:37:07

标签: iphone cocoa-touch uitextfield

我想在用户点击文字字段时打开一个面板。我想我应该使用一个响应click事件的委托方法。我找到了

- (void)textDidBeginEditing:(NSNotification *)aNotification

方法不起作用,那就是

- (void)controlTextDidBeginEditing:(NSNotification *)aNotification

方法有效,但只有当我在文本字段中编辑文本时,才会单击它。如果我再次编辑文本,此方法不起作用。为什么呢?


抱歉,我想我想在mac上使用它,而不是在iphone上,如何用cocoa做它?

2 个答案:

答案 0 :(得分:5)

textFieldDidBeginEditing:委托方法仅在用户开始编辑UITextField内的文本时触发,方法名称暗示。

如果您想在触摸UITextField时触发方法,则应尝试此操作:

[textField addTarget:self 
              action:@selector(textFieldTouched:)
    forControlEvents:UIControlEventTouchDown];

- (void) textFieldTouched:(id)sender {
    // Display the panel
}

答案 1 :(得分:3)

正确的委托方法名称是

- (void)textFieldDidBeginEditing:(UITextField *)textField

来自文档:

  

此方法通知委托指定的文本字段刚成为第一个响应者。