IOS textFieldDidChange 当outlet在其他类中时
我在访问不同班级的插座时遇到了一个特定的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
textFieldDidChange 不起作用。嗯,我有很多问题。
我不知道它是否已被弃用或其他什么。
无论哪种方式,只要正确委托,您都可以以几乎相同的方式使用 shouldChangeCharacterInRange 。
但您必须对其进行一些修改,因为该方法是在您实际输入内容之前触发的。所以你必须获得新的值并自己添加。
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.