我有一個自定義視圖NSView
,我想禁用userinteraction,但我不知道如何執行此操作。如何禁用自定義視圖中的用戶交互
我的想法是:
[myView setEnabled:NO];
但它是錯誤的,不工作。我怎麼能這樣做,它只是爲用戶可見,而沒有別的?
我有一個自定義視圖NSView
,我想禁用userinteraction,但我不知道如何執行此操作。如何禁用自定義視圖中的用戶交互
我的想法是:
[myView setEnabled:NO];
但它是錯誤的,不工作。我怎麼能這樣做,它只是爲用戶可見,而沒有別的?
從here:
//
// NSView-DisableSubsAdditions.m
// Can Combine Icons
//
// Created by David Remahl on Tue Dec 25 2001.
// Copyright (c) 2001 Infinity-to-the-Power-of-Infinity. All rights reserved.
//
#import "NSView-DisableSubsAdditions.h"
@implementation NSView(DisableSubsAdditions)
- (void)disableSubViews
{
[self setSubViewsEnabled:NO];
}
- (void)enableSubViews
{
[self setSubViewsEnabled:YES];
}
- (void)setSubViewsEnabled:(BOOL)enabled
{
NSView* currentView = NULL;
NSEnumerator* viewEnumerator = [[self subviews] objectEnumerator];
while(currentView = [viewEnumerator nextObject])
{
if([currentView respondsToSelector:@selector(setEnabled:)])
{
[(NSControl*)currentView setEnabled:enabled];
}
[currentView setSubViewsEnabled:enabled];
[currentView display];
}
}
@end
的NSView沒有任何的setEnabled:或setIgnoresMouseEvents:
實施the hitTest:
method返回nil
。
子類中的NSView
並添加以下方法
-(void)mouseDown:(NSEvent *)theEvent
{
}
完美。 hitTest:返回nil根本不適用於我 - 它似乎阻止了mouseDown被調用。所以只需使用一個空的mouseDown: – ghr 2017-05-31 00:27:25
嘗試[MyView的setUserInteractionEnabled:NO]; – 2012-07-31 12:59:20
@CodersParadise:這個問題是關於OS X,而不是iOS。 'NSView'上沒有這樣的屬性或方法... – NSGod 2013-04-09 00:28:56