gpt4 book ai didi

swift - 有没有办法从 subview 中获取父对象?

转载 作者:可可西里 更新时间:2023-11-01 01:07:23 26 4
gpt4 key购买 nike

我正在为 swift 开发一个填字游戏应用程序,但我无法从 UIButton 中的 subview 获取 UIButton是一个文本域

文本字段占用了 UIButton 标题应占的空间,但是当单击 textfield 时它没有单击 UIButton。目前,UIButton 本身突出显示了某些列和行的所有 UIButtons

我已经尝试了一些方法,例如雕刻 subview 的父类(super class)

var myButton: CustomButton = textfield.superclass as? CustomButton

我也试过用

var myObject : CustomButton? {
return view.compactMap({$0 as? CustomButton }).first
}

CustomButton.swift

class CustomButton: UIButton {
var number: Int = 0
var letter: Character?
var textField: UITextField!
var cornerLabel: UILabel!

// this init will intialize the button through programatically
override init(frame: CGRect) {
super.init(frame: frame)

textField = UITextField(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
textField.translatesAutoresizingMaskIntoConstraints = false
textField.center = .zero
textField.textAlignment = .center
textField.text = ""

我有一个 ButtonStore.swift 将所有 CustomButton 存储在数组中,因此我可以管理它们并检索某些。

并且 MainController.swift 具有所有引用 CustomButton。我正在使用来自 MainController 的 UITextFieldDelegate

class MainController : UIViewController, UITextFieldDelegate{
var buttonStore : ButtonStore!

@IBOutlet var A1 : CustomButton!

@IBAction func buttonIsPress(sender: CustomButton){
let button : CustomButton = sender
let identifier : String = sender.accessibilityIdentifier ?? ""
// Clear all backgroundbox back to white unless the background is black
buttonStore.removeHighlights()
// Highlight the button pressed and its column and row
buttonStore.highlightRowColumn(identifier: identifier)
}

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool
{
print("something happened")
// TRIED RECEIVING THE CUSTOMBUTTON HERE
return true
}

预期的结果是在按下文本字段或捕获按下文本字段的 CustomButton 时触发 CustomButton,因此我使用 CustomButton 作为引用。

最佳答案

你可以通过

获取 superview
if let button = textField.superview as? CustomButton {
// Do what you want to here
}

关于swift - 有没有办法从 subview 中获取父对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55578880/

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