如何确定哪个文本字段处于活动状态? (哪一个关注它)。
我在Objective-C中发现了这段代码,但不知道它是如何工作以及如何在swift中翻译它
NSResponder *firstResponder = [[NSApp keyWindow] firstResponder];
if ([firstResponder isKindOfClass:[NSText class]] && [(id)firstResponder delegate] == mySearchField) {
NSLog(@"Yup.");
}
答案 0 :(得分:2)
你走了:
var responder = window.firstResponder
if responder.isKind(of: NSText.self) {
let fieldEditor = responder as! NSText
responder = fieldEditor.delegate as! NSResponder
}
最后是responder
集中控制。如果焦点控件是NSTextField
,则第一个响应者是字段编辑器,文本字段内有NSTextView
。字段编辑器的代表是控件。
答案 1 :(得分:0)
嗯,如果有人有兴趣,我会在iOS中这样做。我不熟悉Mac OS如何处理firstResponder,但它看起来完全不同。
func findFirstResponder(in view: UIView) -> UIView? {
for subview in view.subviews {
if subview.isFirstResponder {
return subview
}
if let firstReponder = findFirstResponder(in: subview) {
return firstReponder
}
}
return nil
}
答案 2 :(得分:-1)
您可以执行if else并遍历每个textField,这样您就可以知道textField是firstResponder。
window.open('', document.getElementById('canvas').toDataURL());