【问题标题】:iOS: UITextField selectAll + Editing Did Begin not workingiOS:UITextField selectAll + Editing Did Begin 不起作用
【发布时间】:2011-11-17 21:13:05
【问题描述】:

我试图在用户点击字段开始编辑时选择 UITextField 中的文本。这个想法是,通常他们会希望先擦除整个字段,这样就省去了双击并全选的步骤。

.h

- (IBAction)urlEditingDidBegin: (id)sender;

.m

- (IBAction)urlEditingDidBegin:(id)sender
{
    NSLog(@"Select Contents");

    [sender setText:@"Why isn't this working"];
    [sender selectAll:self];
}

在界面生成器中,我将 UITextField 的“Editing Did Begin”事件连接到文件的所有者,并将其连接到我的 urlEditingDidBegin 方法。

当我点击 UITextField 时,字段中的文本变为“为什么这不起作用”,这证明方法正在触发并且发送者是正确的,但是文本没有选择。

我做错了什么?

【问题讨论】:

    标签: objective-c ios xcode4 uitextfield selectall


    【解决方案1】:

    通常,如果您想为用户提供一种简单的方法来清除文本,请通过在 xib 中将清除按钮设置为“编辑时出现”或调用

    来添加 clear

    [textField setClearButtonMode:UITextFieldViewModeWhileEditing];

    以编程方式选择文本听起来很诱人,但我认为您会遇到更多问题,因为它往往会打开编辑菜单。

    【讨论】:

    • 你说得对,这就是我最终想要做的,虽然我仍然不明白为什么 selectAll 没有选择文本。
    【解决方案2】:

    实际上选择了文本,但没有任何视觉反馈。 例如看this answer

    【讨论】:

      【解决方案3】:

      将委托设置为 self 并在您的 .h 文件中传递 <UITextFieldDelegate>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-09
        • 2011-01-22
        • 1970-01-01
        • 2019-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-22
        相关资源
        最近更新 更多