2012-04-14 3 views
0

У меня есть в моем AppDelegate окно, которое я создал, а затем я установил представление содержимого подкласса NSView «CutoutView», когда я выполняю любые действия с помощью newContentView, такие как получение методов из CutoutView, они отлично работают.Методы из разных классов дважды

// Configure contentView in AppDelegate 
    newContentView = [[CutoutView alloc]initWithFrame:window.frame]; 
    [window setContentView:newContentView]; 

Теперь у меня есть еще один NSView подкласс под названием MoveFilter, и я хочу, чтобы иметь возможность вызывать методы из моего CutoutView, а также. Проблема заключается в том, чтобы сделать это, я должен выделить и снова запустить метод CutoutView, и когда я вызову эти методы, но ничего не отображается, поскольку CutoutView уже был назначен и init ранее.

// in MoveFilter 
cutOutView = [[CutoutView alloc]init]; 
[cutOutView someMethod]; 

Что мне нужно сделать, чтобы добавить к MoveFilter или что я могу взглянуть на то, чтобы помочь мне быть в состоянии назвать методы, где они будут отображаться так же, как newContentView делает? Извините, что я новичок в этом, спасибо!

ответ

2

Получить существующий CutoutView из приложения делегата: (. Если предположить, что у вас есть свойство для этого - это выглядит, как вы кладете его в Ивар)

CutoutView * cv = [[NSApp delegate] newContentView]; 

или окно:

// in MoveFilter 
CutoutView * cv = [[self window] contentView]; 

(. Если предположить, что MoveFilter и CutoutView находятся в одном окне)

Или, если ни одно из этих предположений не является истинным, вы можете объединить две процедуры и получить представление содержимого окна делегата приложения. Я оставлю это как упражнение для вас.

+0

Я создал свойство для newContentView, и я использовал ваш первый пример 'CutoutView * cv = [[NSApp delegate] newContentView];' Они находятся в отдельных окнах, поэтому в моей следующей строке я попытался получить представление содержимого так же, как 'cv = [[self window] contentView]; 'но я получаю сообщение об ошибке, я закрываю? –

+1

'[[[NSApp delegate] window] contentView]' –

+0

так вот так? 'CutoutView * cv = [[NSApp delegate] newContentview];' и 'cv = [[[NSApp delegate] window] contentView];' он wasent выдавал ошибку, но я не мог вызвать метод '[cv someMethod]' thanks для того, чтобы быть пациентом –

Смежные вопросы