2016-10-28 12 views
0

アクティブなテキストフィールドの決定方法は? (それに焦点を当てている)。 アクティブなテキストフィールドの決定方法

私はここに誰がいる場合、私はiOSの中でそれを行うだろうかであるObjective-Cでこのコードを見つけたが、それはまだ動作している場合どのように迅速

NSResponder *firstResponder = [[NSApp keyWindow] firstResponder]; 
    if ([firstResponder isKindOfClass:[NSText class]] && [(id)firstResponder delegate] == mySearchField) { 
    NSLog(@"Yup."); 
} 

答えて

1

あなたが行く:終わり

var responder = window.firstResponder 
if responder.isKind(of: NSText.self) { 
    let fieldEditor = responder as! NSText 
    responder = fieldEditor.delegate as! NSResponder 
} 

responder集中制御です。フォーカスされたコントロールがNSTextFieldの場合、最初のレスポンダーはフィールドエディタで、NSTextViewがテキストフィールド内にあります。フィールドエディタの代理人がコントロールです。

0

ウムでそれを翻訳する方法がわかりません興味がある。私は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 
    } 
-1

if elseを実行して各textFieldを繰り返して、どのtextFieldがfirstResponderであるかを知ることができます。ここで

func methodForDiscoverTheFirstResponder { 
    if myTextField.isFirstResponder { 
     //do stuff 
    } else if mySecondTextField.isFirstResponder { 
     //do stuff 
    } 
    ... 
} 
+0

あなたは最初のレスポンダ() – user3722523

関連する問題