2016-10-28 4 views
0

활성 텍스트 필드를 결정하는 방법은 무엇입니까? (어느 쪽이 그것에 집중했는지). 활성 텍스트 필드를 결정하는 방법

나는 여기 사람이 있다면 나는 아이폰 OS에서 그것을 할 것이다 어떻게 목표 - 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

음으로 번역하는 방법을 모른다 관심. 맥 오에스가 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

당신이 경우 다른 수행하고 firstResponder 무엇인지에 textField 알 수 있도록 각에 textField를 반복 할 수 있습니다. 여기

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

. 당신은 뜻합니까 FirstResponder() – user3722523