gpt4 book ai didi

objective-c - 子类化 UITextField

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:50 24 4
gpt4 key购买 nike

我是新手,我正在努力了解子类化的实现。

我了解创建新文件并使其成为任何父类的子类的基本原理(在本例中我选择了 UITextField)。我已经创建了自己的子类,然后将相应 UITextField 对象的身份检查器中的类更改为我的新类,简称为“myTextField”。我已经使用在 SO 上其他地方找到的代码来修改占位符文本的表示,并且它工作正常(来自子类对象)。

我已经(在 Storyboard中)让 viewController 成为我的子类 textFields 的委托(delegate)。

并且根据需要触发适当的方法,例如,在 View Controller .m 文件中的“返回”按钮上激活 textFieldShouldReturn 方法。

但是这些方法只在 viewcontroller 上触发,而不是在我的子类中。在 viewcontroller 对它们做任何事情之前,我想访问这些。

换句话说,我仍然希望它按应有的方式触发,但我也想在子类对象中执行一个操作,但仍然在主文件中触发完整的方法。例如,当用户点击返回时,我希望子类对象直接处理键盘的放下,但仍然触发 viewcontrollers 方法。

这只是一个例子,可能是一个糟糕的例子,但我的想法是,我不一定要去掉主视图 Controller 的原始方法的功能,我仍然希望它是委托(delegate);我只希望子类对象文件也能做一些工作。在此示例中,可能是放下键盘并播放 clang 。正如我所说,这是一个例子, Action 本身是无关紧要的。但是让 Action 在我想要的地方执行是个问题。

我知道我还没有完全理解子类化,如果我错过了一些非常基本的东西,我提前道歉。

如有任何指点,我将不胜感激

最佳答案

听起来好像您很好地掌握了子类化,但可能在委托(delegate)方面存在问题。

委托(delegate)的意义在于,有一个(唯一)对象代表另一个对象做一些工作。当您需要多个对象对某事使用react时,通知是更好的策略。

对于您的示例,我可以看到两个选项。一种方法是让委托(delegate)显式调用子类中的方法。另一种方法是让委托(delegate)方法发布自定义通知,然后任何想要响应的对象都可以对此使用react。

在这两者之间做出选择取决于您希望解决方案的一般性或具体性。

关于objective-c - 子类化 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13541490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com