2013-03-04 1 views
0

У меня есть подкласс NSTextField (называемый «txtField1» и используемый как пользовательский класс для текстового поля в моем построителе интерфейсов), и я хотел бы иметь доступ к объекту NSComboBox, который присутствует в моем построителе интерфейса из этого класса.Как получить доступ к объектам из разных классов в программировании какао

Это мой код: txtField1.h:

#import <Cocoa/Cocoa.h> 

@interface txtField1 : NSTextField 

@end 

txtField.m:

#import "txtField1.h" 

@implementation txtField1 

-(void)mouseDown:(NSEvent *)theEvent 
{ 
    HERE I would like to be able to write something like: 
    [combobox SetHidden:YES]; 
} 

@end 

Я хотел бы иметь возможность настроить доступ к COMBOBOX SetHidden собственности, в случае MouseDown , Не могли бы вы рассказать мне, как это сделать? Я пробовал различные решения, найденные в Интернете, но ничего не получал! Любая помощь будет оценена по достоинству.

+1

возможный дубликат [Использование объекта из одного класса в другой] (HTTP : //stackoverflow.com/questions/15187241/using-object-from-one-class-in-another) –

+0

Каждый день я вижу подобный вопрос дюжины времени, и у всех одинаковый ответ !!! –

+0

смотрите здесь: http://stackoverflow.com/questions/15248130/make-nscombobox-appear-when-nstextfield-is-clicked – rambodrahmani

ответ

1

Здесь много способов, и ответы здесь, чтобы сделать:

Update a label through button from different view

Xcode - update ViewController label text from different view

Setting label text in another class

Set label on another view to stored NSDate

EDIT:

-(void)mouseDown:(NSEvent *)theEvent 
{ 
    HERE I would like to be able to write something like: 
    [combobox SetHidden:YES]; 
    /* 
     use the shared instance of comboBox here and make it hidden. 
     Also, you can use binding to make it hidden 
    */ 
} 
+0

Извините, но на самом деле ни один из предложенных вами ответов не помог мне. Не могли бы вы привести мне пример? – rambodrahmani

+0

'доступ к объекту NSComboBox, который присутствует в моем построителе интерфейса из этого класса.', В котором класс, это? –

+0

см. Мое редактирование в ответе –

0

С моей точки зрения txtField1 класс не лучший вариант для этого кода.

Вы можете добавить NSControlTextEditingDelegate протокол к вашему NSViewController реализации (что уже содержит IBOutlet с для txtField1 и combobox) и в методе – control:textView:doCommandBySelector: реализовать скрытие вашего NSComboBox

+0

Любая идея? Я попытаюсь объяснить вам все, что я пытаюсь сделать снова: у меня есть NSTextfield и NSComboBox. Ну, я хочу, чтобы NSTextField исчез, и NSComboCox появится, когда кто-то щелкнет внутри NSTextField. Помоги мне. Спасибо. – rambodrahmani

+0

смотрите здесь: http://stackoverflow.com/questions/15248130/make-nscombobox-appear-when-nstextfield-is-clicked – rambodrahmani

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