IOS textFieldDidChange 当outlet在其他类中时

发布于 2025-01-05 16:42:58 字数 537 浏览 0 评论 0原文

我在访问不同班级的插座时遇到了一个特定的 iOS 问题。

在我的项目中,我有一个带有自定义 tableViewCells 的 UItableView,它是我使用界面生成器创建的。这些单元格上有 UItextfields,我需要知道某个文本字段的值何时更改。 (这样我就可以添加一个带有文本字段的新空单元格,就像在您的地址簿中一样)我遇到了以下函数

[UITextfield addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

问题是,当文本字段的出口位于子类中时(特定的 tableViewCell班级)。

我创建了插座的方法,以便我可以在主类中访问它。但上面的代码仍然没有触发textFieldDidChange事件。

希望有人能帮助我解决这个问题。或者给我一个不同的解决方案来实现我的目标(在将第一个字符添加到当前 UITextfield 时创建一个新的空文本字段)。

谢谢

I've got a specific iOS question when accessing an outlet on a different class.

In my project I have a UItableView with custom tableViewCells which I have created using the interface builder. These cells have UItextfields on them and I need to know when a value of a certain textfield is changed. (so I can add a new empty cell with textfield, just like in your address book) I came across the following function

[UITextfield addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

The problem is that I use this function in the main class when the outlet of the textfield is in the subclass (specific tableViewCell class).

I Created an Method of the outlet so I could access it in the main class. But still is above code does not trigger the textFieldDidChange event.

Hope someone could help me with this problem. Or give me a different solution to achieve my goal (creating an new empty textfield when adding the first character to the current UITextfield).

Thnx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乙白 2025-01-12 16:42:58

textFieldDidChange 不起作用。嗯,我有很多问题。
我不知道它是否已被弃用或其他什么。
无论哪种方式,只要正确委托,您都可以以几乎相同的方式使用 shouldChangeCharacterInRange 。

但您必须对其进行一些修改,因为该方法是在您实际输入内容之前触发的。所以你必须获得新的值并自己添加。


- (BOOL) textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Check the replacementString
return YES;
}

textFieldDidChange doesn't work. Well, I had a lot of problems with it.
I don't know if it's deprecated or something.
Either way you can use shouldChangeCharacterInRange almost same way as long as it's delegated correctly.

But you have to modify it a bit because the method is triggered before you actually typed something. So you have to get the new value and add it yourself.


- (BOOL) textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Check the replacementString
return YES;
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文