如何在 iOS 中找到选定的文本字段
Posted
技术标签:
【中文标题】如何在 iOS 中找到选定的文本字段【英文标题】:How to find the selected text field in iOS 【发布时间】:2014-06-25 06:40:41 【问题描述】:我正在使用情节提要开发一个 iPad 应用程序。在我的应用程序中,我有一个带有两个文本字段和一个按钮的弹出视图。我需要做什么意味着如果我单击按钮,则需要在所选文本框中显示一个文本.我如何找到在当前情况下选择了哪个文本框?示例代码如下请帮助我完成功能。
- (IBAction)buttonPressed:(id)sender
if(//Here i need to set the condition for check selected text box is first)
texbox1.text=@"User";
else
textbox2.text =@"Admin";
【问题讨论】:
如果刚刚按下按钮,如何选择文本字段? @***foe 我为每个文本字段创建 ib 操作。并设置标志。此方法正确吗?有任何短方法可用吗? 您的问题对您想要实现的目标感到困惑。如果按下按钮,则(以前的“已选择”)文本字段将被取消选择。所以请解释得更清楚。 【参考方案1】:- (IBAction)buttonPressed:(id)sender
if([textbox1 isFirstResponder])
//Cursor on textbox1
texbox1.text=@"User";
else if([textbox2 isFirstResponder])
//Cursor on textbox2
textbox2.text =@"Admin";
else
NSLog(@"None of them have cursor");
【讨论】:
如果按下按钮,它不会成为第一响应者吗? @vijay 谢谢...您的答案对我有用。我标记为正确答案。 @***foe 那么当我们点击按钮时键盘会自动退出吗?不是! @Vijay-Apple-Dev.blogspot.com 我又提出了一个问题,请您帮我解决这个问题。 ***.com/questions/24446429/… @Vijay-Apple-Dev.blogspot.com ***.com/questions/25376689/… 帮我解决这个问题【参考方案2】:将Tag
设置为您的textfields
在你的课堂上实现UITextFieldDelegate
使用这个方法
- (void)textFieldDidBeginEditing:(UITextField *)textField
if (textField.tag == your tag)
selectedTextField = textField; //selectedTextField is an UITextfield variable
在你的IBAction
中使用它
- (IBAction)buttonPressed:(UIButton *)sender
selectedTextField.text = @"abc";
//编辑:***的代码功能有问题,无法正常显示
【讨论】:
这个答案缺少重要的细节;例如设置委托以及委托方法中的操作。 @Pham 请解释你的答案。我如何为字段设置文本? 重新检查,在完成我的答案之前我误点击了帖子 +1 我相信这是正确的方法。当按下按钮 it 将成为第一响应者,因此测试当前第一响应者的解决方案将失败。其他注意事项:当视图可见时,您可能希望确保selectedTextField
被初始化为第一个文本字段。【参考方案3】:
如果我正确理解你的问题,我认为下面的代码就是你想要的:-
- (IBAction)buttonPressed:(UIButton *)sender
if(self.texbox1.isFirstResponder)
self.texbox1.text=@"User";
[self.texbox1 resignFirstResponder];
if(self.texbox2.isFirstResponder)
self.texbox2.text=@"Admin";
[self.texbox2 resignFirstResponder];
我不确定你为什么要像上面那样实现,因为它有点好笑。
【讨论】:
如果按下按钮,它不会成为第一响应者吗? 据我了解,他/她想在按下按钮时在“选定”文本字段上显示文本。我认为他/她所说的“被选中”是指第一受访者。因此,我的回答如上。【参考方案4】:UITextField
是UIResponder
的子类,它允许您执行包括isFirstResponder
在内的检查,这可能是您正在寻找的。但是,您需要了解响应者链的工作原理以及这是否真的是您要检测的行为。
【讨论】:
【参考方案5】:使用 isFirstResponder 检查哪个文本框处于活动状态。
- (IBAction)buttonPressed:(id)sender
if([textbox1 isFirstResponder])
texbox1.text=@"User";
else if([textbox2 isFirstResponder])
textbox2.text =@"Admin";
else
// What should happen when neither textbox1 nor textbox2 is active?
【讨论】:
以上是关于如何在 iOS 中找到选定的文本字段的主要内容,如果未能解决你的问题,请参考以下文章
为深色模式更改 UIDatePicker 选定的日期文本颜色(iOS 13)
如何将选定的 JComboBox 数据项提取到 Swing 文本字段中?
如何根据 b-form-select 中的选定值禁用/启用文本字段?