2016-07-31 3 views
1

I는 사용자가 선택한 것을 행 (또는 여러 행) 내 NSTableView는에 복사 (명령 + C) 기능을 추가 할 회색. 당신이 당신의 TableView 컨트롤러 Delegate에 사본을 구현하는 경우 I가 자동으로 활성화되어야 메뉴 항목에서 복사 기능을 읽을 것을 기준으로합니다.복사 NSTableView는 행은

나는 (테이블 뷰의 대리인 및 데이터 소스) 행운 다음과 같은 일들이, 복사 메뉴 항목이 여전히 회색로 나타납니다 NSTableViewController에 추가 시도했다 :

  1. 재정의 FUNC 사본 () -> AnyObject { 인쇄 ("TEST : copytriggered") 다음/내가/ 반환 사실 선택한 행을 클립 보드에 복사합니다}

2. 는 N에 부합를 SCopying 구현 copyWithZone ...

3.

창 컨트롤러와 응용 프로그램 위임에 1과 2를 시도.

  1. 추가 FUNC에있는 tableView (_있는 tableView : NSTableView는, pasteboardWriterForRow 행 : INT) -> NSPasteboardWriting를? TableView 데이터 소스에서.

나는이 시점에서 할 수있는 어떤 단서, 감사합니다 도움이 없습니다.

감사합니다,

답변

0

마크는 그냥 나중에 참조 할 수 있도록 여기에 대답, 게시를 얻었다.

당신은 객체의 복사본을 만들기위한 방법과 복사 편집 액션 메소드를 혼동하고 있습니다. NSCopying 프로토콜 및 copyWithZone() 메소드는 자신의 복사본을 생성하는 것을 목적으로하므로 후자이다. 마찬가지로, 복사() 메소드 copyWithZone위한 단지 편의상의 표지 방법이다().

복사 편집 메뉴 항목에 대한 조치 방법은 미묘하게 다르다. 그것은 "func copy (_ sender : AnyObject?)"입니다. 이것은 모든 액션 메소드의 일반적인 형식입니다. 보낸 사람의 인수를 취하고 아무 것도 반환하지 않습니다. 이 방법을 구현해야합니다.

마지막으로,있는 tableView (_ : pasteboardWriterForRow : 사용자가 행을 드래그 할 때 일반적으로 단지, 드래그 앤 드롭에 사용됩니다.