#objective-c #macos #cocoa #swift
#objective-c #macos #cocoa #swift
Вопрос:
Я создаю IBAction с помощью Interface Builder
@IBAction func slider(sender : NSSlider) {
var x:Double = Double(self.slider.value())
}
Теперь я хотел бы получить и поработать с его текущим значением. Есть ли у кого-нибудь хорошие предложения по изучению разработки Cocoa с использованием SWIFT на OSX? В учебных пособиях я вижу ссылки на UISlider и UIButton, но Interface Builder создает ссылки в коде на NSButton и NSSlider. Я в замешательстве. Заранее благодарю вас.
Ответ №1:
Все элементы управления с префиксом «UI» являются частью фреймворка UIKit, который используется для разработки приложений для iOS. Если вы разрабатываете для OS X, вы будете использовать AppKit, который появился первым и использует префикс «NS» для своих элементов управления. Вероятно, пока не так много руководств по разработке Swift OS X, но фреймворки Cocoa, с которыми вы работаете, одинаковы, независимо от вашего выбора Swift против Objective-C.
У NSSlider нет value()
метода, но у него есть doubleValue
свойство, которое вам нужно. Метод, который вы настроили, будет вызываться при изменении значения ползунка:
@IBAction func slider(sender : NSSlider) {
var x: Double = sender.doubleValue
// do something
}
Если вы хотите получить значение ползунка в произвольное время, вам нужно IBOutlet
вместо этого настроить:
@IBOutlet var slider: NSSlider