gpt4 book ai didi

ios - Swift:如何使用 UISwitch 来控制 UITextField 通过委托(delegate)启用或禁用

转载 作者:行者123 更新时间:2023-11-30 14:16:34 24 4
gpt4 key购买 nike

XCode 6.3.2 中,我有一个 UITextField:

@IBOutlet weak var uiswitchControlledTextField: UITextField!

我现在使用 UISwitch(名为 mySwitch)通过以下方式控制其启用或禁用状态:

@IBOutlet weak var mySwitch: UISwitch!
mySwitch.addTarget(self, action: Selector("stateChanged:"), forControlEvents: UIControlEvents.ValueChanged)

//callback below:
func stateChanged(switchState: UISwitch) {
uiswitchControlledTextField.enabled = switchState.on

}

上面的效果很好,但是,我想尝试是否可以创建一个 UITextFieldDelegate 来以相同的方式控制上面的 UITextField。到目前为止,我通过实现 textFieldShouldBeginEditing 实现了以下内容,其中我希望返回 false 以禁用 UITextField,但我不知道如何让 UISwitch 动态返回truefalse 来自 textFieldShouldBeginEditing

import Foundation
import UIKit

class SwitchControlledTextFieldDelegate: NSObject, UITextFieldDelegate {

func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
return false; //do not show keyboard or cursor
}

}

在ViewController中,我尝试设置

self.uiswitchControlledTextField.delegate = SwitchControlledTextFieldDelegate()

但它并没有按照我的意愿工作。任何帮助将不胜感激。

最佳答案

self.uiswitchControlledTextField.delegate = SwitchControlledTextFieldDelegate()

问题是该行仅创建 SwitchControlledTextFieldDelegate 类的一个实例,然后该实例立即消失。

您需要使用一些已经存在且将持续存在的实例作为您的文本字段委托(delegate) - 就像您的 View Controller 一样!

关于ios - Swift:如何使用 UISwitch 来控制 UITextField 通过委托(delegate)启用或禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31095043/

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