Created
May 5, 2023 00:56
-
-
Save dictav/09575038893cd3a1871909cca87d2891 to your computer and use it in GitHub Desktop.
擬似IMEっぽい何か
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
import PlaygroundSupport | |
class ViewController: UIViewController { | |
var label: UILabel? | |
var textField: TextField? | |
override func viewDidAppear(_ animated: Bool) { | |
self.becomeFirstResponder() | |
} | |
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { | |
print("HERE", touches.first?.view) | |
if touches.first?.view == self.label { | |
self.textField?.becomeFirstResponder() | |
} else { | |
self.textField?.resignFirstResponder() | |
} | |
} | |
func subscribe(label: UILabel, textField: TextField) { | |
self.label = label | |
self.textField = textField | |
textField.addTarget(self, action: #selector(textChanged), for: .editingChanged) | |
} | |
@objc func textChanged() { | |
self.label?.text = self.textField?.text | |
} | |
} | |
class TextField: UITextField { | |
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { | |
return nil | |
} | |
} | |
let myView = UIView() | |
let viewController = ViewController() | |
viewController.view = myView | |
PlaygroundPage.current.liveView = viewController | |
let size = CGSize(width: 500, height: 40) | |
let label = UILabel(frame: CGRect(origin:.zero, size: size)) | |
label.text = "hello" | |
label.isUserInteractionEnabled = true | |
myView.addSubview(label) | |
let textField = TextField(frame: CGRect(origin: CGPoint(x: 0, y: 40), size: size)) | |
textField.layer.backgroundColor = CGColor(gray: 0.8, alpha: 1.0) | |
viewController.subscribe(label: label, textField:textField) | |
myView.addSubview(textField) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment