NSViewControllers
을 포함하는 NSWindowController
이 있습니다. 나는 NSTextView
이NSTextView에서 끌어서 놓기를 비활성화하려면 어떻게합니까?
어떻게 드래그 & 놓기 이벤트를 무시 NSTextView
을 알 수 있습니다 (A NSViewController
에 포함)와 같은 보편적 NSWindowController 클래스와 드래그 앤 드롭 이벤트를 수용하고 다른 뷰에 의해 차단되지 하시겠습니까?
NSViewControllers
을 포함하는 NSWindowController
이 있습니다. 나는 NSTextView
이NSTextView에서 끌어서 놓기를 비활성화하려면 어떻게합니까?
어떻게 드래그 & 놓기 이벤트를 무시 NSTextView
을 알 수 있습니다 (A NSViewController
에 포함)와 같은 보편적 NSWindowController 클래스와 드래그 앤 드롭 이벤트를 수용하고 다른 뷰에 의해 차단되지 하시겠습니까?
드래그 앤 드롭 이벤트를 가로 채기 위해 NSTextView
을 건너 뛸 때 두 가지가 필요하다는 것을 알았습니다.
- (void)awakeFromNib
{
[self noDragInView:self.view];
}
- (void)noDragInView:(NSView *)view
{
for (NSView *subview in view.subviews)
{
[subview unregisterDraggedTypes];
if (subview.subviews.count) [self noDragInView:subview];
}
}
당신의 NSTextView
를 서브 클래스 화해,이 방법 추가 :
- (NSArray *)acceptableDragTypes
{
return nil;
}
NSTextView
가 정상적으로 드래그를 무시하고 이벤트를 삭제해야하고 수를 떠나 NSViewController
에서
은 NSTextView
포함 NSWindow에서 처리합니다.
NSTextView를 서브 클래스 화하고 해당 acceptableDragTypes
속성에 대해 getter를 재정의하는 것으로 충분합니다 (unregisterDraggedTypes
필요 없음). Swift에서 :
override var acceptableDragTypes : [String] {
return [String]()
}
나는 서브 클래스의 내부에 acceptableDragTypes를 구현하는 것으로 충분하다고 생각합니다. – palob