2016-05-25 6 views
0

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

enter image description here

пользователь может коснуться какого-либо контроля.

Это достаточно просто с этими тремя элементами управления, потому что я могу перетащить в действие. Но если у меня есть много из них, я не могу справиться с ними по всем методам действий. Есть ли общий способ, с помощью которого я могу безопасно ссылаться на элемент управления в переменной, чтобы я мог знать, какой из элементов управления является активным?

Редактировать

Как предположил я использую функцию и назначение переменного отправитель функции. Вот как это выглядит в коде:

var currentObject: NSTextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    myTextfield.action = #selector(myAction) 
} 

func myAction(sender: NSTextField) 
{ 
    print("aktuell: \(sender)") 
    currentObject = sender 
} 

Как видите, это работает только для поля NSTextfield. Есть ли способ, которым функция работает для каждого элемента управления?

ответ

1

Установите атрибут tag для каждого элемента, а затем вы можете проверить sender.tag, чтобы определить, какой объект его вызывает.

Чтобы установить метку, выберите инспектора атрибутов в раскадровке (верхняя правая сторона - средняя кнопка утилит) и искать для этого раздела:

enter image description here

+0

Спасибо за ответ. Посмотрите мое редактирование, знаете ли вы, как это решить? – Anokrize

+0

Если вам действительно не нужна какая-либо другая информация об объекте, вы можете изменить свою функцию как 'func myAction (отправитель: AnyObject)', а затем перетащить все элементы на это. – sschale

+0

Да, но проблема в том, что таким образом я не могу получить доступ к currentObject.frame, который я должен использовать позже. – Anokrize

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