2016-05-28 3 views
-2

У меня есть несколько элементов управления, таких как NSTextfields и NSButtons. Я не мог найти решение для прикосновения внутри событий в swift 2.2. Я попробовал его с новыми селекторов, но я не знаю, как обращаться события прикосновения с ними ... Вот мой код:Нажмите внутри swift 2.2 OSX

override func viewDidLoad() { 
    textfield.action = #selector(myAction) 
    button.action = #selector(myAction) 
} 

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

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

В старых версиях Свифта у меня был что-то вроде:

button.addTarget(self, action: Selector("actionMethod"), forControlEvents: UIControlEvents.TouchUpInside) 

Ошибки при попытке добавить addTarget функции:

Значения типа «NSButton» не имеет ни одного члена «addTarget»

Но я не могу найти это в swift 2.2 и есть ошибка, если я пытаюсь его использовать. Спасибо за помощь!

Я использую OSX не IOS, но это должно быть то же самое ...

+1

«* Я использую OSX не iOS, но это должно быть одинаково *». Вы не трогаете вещи на OSX, вы нажимаете на них. –

+0

Знаете ли вы, как добавлять действия в OS X для события click? @DanielStorm – Anokrize

ответ

1

Вы должны установить NSButton «s action. Например:

let button = NSButton() 
button.target = self 
button.action = #selector(someAction) 

От NSButton Class Reference:

NSButton является подклассом класса NSControl. Объект NSButton отправляет сообщение о действии целевому объекту, например контроллеру вида, при нажатии кнопки.

+0

Это тоже работает для текстовых полей? – Anokrize

+0

@Anokrize [Добавление действия click к NSTextField] (http://stackoverflow.com/q/5588056/2108547). –

+0

Можете ли вы перевести его в быстрый? Я не понимаю obj.-c. Спасибо за ответ! – Anokrize

0

Swift2.2 принижает с использованием строк для селекторов и вместо этого вводит новый синтаксис: #selector.

Например:

button.addTarget(self, action: #selector(actionMethod), forControlEvents: .TouchUpInside)

+0

Я не могу добавить функцию addTarget как-то. – Anokrize

+0

см. Сообщение об ошибке выше – Anokrize

+0

Возможно, вам стоит проверить класс кнопки, является ли это 'UIControl' или подкласс' UIControl'. – likumb

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