objective-c - 如何在带有 OSX 的 SWIFT 中使用 Cocoa slider 控件

标签 objective-c macos cocoa swift

我使用 Interface Builder 创建一个 IBAction

  @IBAction func slider(sender : NSSlider) {
    var x:Double = Double(self.slider.value())

}

现在我想获取并使用它的当前值。有没有人对在 OSX 上使用 SWIFT 学习 Cocoa 开发有好的建议?在教程中,我看到了对 UISlider 和 UIButton 的引用,但 Interface Builder 在代码中创建了对 NSButton 和 NSSlider 的引用。我很困惑。提前谢谢你。

最佳答案

所有以“UI”为前缀的控件都是 UIKit 框架的一部分,用于开发 iOS 应用程序。如果您正在为 OS X 开发,您将使用 AppKit,它首先出现并使用“NS”前缀作为其控件。目前可能还没有很多 Swift OS X 开发教程,但无论您选择 Swift 还是 Objective-C,您使用的 Cocoa 框架都是相同的。

NSSlider 没有value() 方法,但它确实有一个doubleValue 属性,这正是您所需要的。当 slider 的值发生变化时,将调用您设置的方法:

@IBAction func slider(sender : NSSlider) {
    var x: Double = sender.doubleValue
    // do something
}

如果您想在任意时间获取 slider 的值,您需要设置一个 IBOutlet:

@IBOutlet var slider: NSSlider

关于objective-c - 如何在带有 OSX 的 SWIFT 中使用 Cocoa slider 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24337034/

相关文章:

python - 在 Mac OS X 中移动光标(在 Python 和/或 R 中)

macos - Mac App Store 对话框与全屏窗口

iphone - NSURLConnection 不返回数据

objective-c - 防止 NSOutlineView(或 NSTableView)在滚动时重绘

ios - Firebase + auth0 身份验证

ios - watchOS 错误 : Unknown property in Interface description for controller

iphone - 如何管理字符串

ios - 通过应用程序在 iPhone 上存储数据的限制

macos - 为什么我不能在/etc/shells中添加fish?

objective-c - 如何将小图像嵌入到我的应用程序中?