StoryBoards를 사용하여 표준 Xcode Swift 템플릿을 사용하여 새로운 OS X Cocoa 응용 프로그램을 만들었습니다.AppDelegate (Swift)에서 ViewController에 연결
사용자가 "파일"메뉴에서 "열기 ..."를 선택할 때 처리 할 AppDelegate.swift에서 IBAction을 구현했습니다. 선택된 파일이 유효한 이미지 파일이면 ViewController 뷰에 표시 할 NSImage를 만듭니다.
@IBAction func openFile(sender: NSMenuItem) {
var openPanel = NSOpenPanel()
openPanel.beginWithCompletionHandler { (result :Int) -> Void in
if result == NSFileHandlingPanelOKButton {
if let imageURL = openPanel.URL {
let image = NSImage(contentsOfURL: imageURL)
// PRESENT image IN THE VIEW CONTROLLER
}
}
}
그러나 AppDelegate에서 ViewController에 연결할 방법이 없습니다. 나는 self.window를보아야한다는 제안을 발견 할 수 있었다! AppDelegate에는 있지만 AppDelegate에는 창과 같은 것이 없습니다.
감사합니다, 마이클 크 누드 센
감사합니다. 내가 필요한 것! –
인스턴스가 생기면 어떻게 사용합니까? 그냥 함수를 호출했는데 작동하지 않습니다 (또는 오히려 메서드 선언에 정의되지 않은 인수가 필요합니다). 이 분리에 대한 이유가 있다고 가정하지만 응용 프로그램 메뉴의 AppDelegate (및 메뉴의 UI 일부만) 호출 할 수 있기 때문에 나는 왜 이런 식으로 이해하지 않습니다.내 메뉴 항목이 내보기를 업데이트하도록하는 쉬운 방법 및/또는 올바른 방법이 있습니까? – Subcreation
첫 번째 응답자는 어떻게 사용하나요? 스토리 보드에서 @IBAction으로 정의하는 첫 번째 응답자의 작업에 메뉴 작업을 연결합니다. 하지만 NSViewController는 응답 체인에 없으므로 컨트롤러를 윈도우의 위임 (NSWindow는 응답 체인에 있음)으로 설정하십시오. – bluedome