OS X アプリ開発は初めてです。私はなんとかNSComboBox(選択可能、編集不可)を構築しました。アクションボタンのクリックでindexOfSelectedItemを取得でき、正常に動作します。
変更時の値を検出する方法は? ユーザーが選択を変更した場合、新しく選択されたインデックスを検出するためにどのような関数を使用する必要がありますか?
NSNotification を使用しようとしましたが、新しい変更値が渡されませんでした。ロード時のデフォルト値は常にです。postNotificationName を間違った場所に配置したか、変更時に値を取得するために使用する必要がある他の方法があるためですか?
ネット、ビデオ、チュートリアルを検索してみましたが、ほとんどが Objective-C 用に書かれています。SWIFT でこれに対する答えが見つかりません。
import Cocoa
class NewProjectSetup: NSViewController {
let comboxRouterValue: [String] = ["No","Yes"]
@IBOutlet weak var projNewRouter: NSComboBox!
@IBAction func btnAddNewProject(sender: AnyObject) {
let comBoxID = projNewRouter.indexOfSelectedItem
print(“Combo Box ID is: \(comBoxID)”)
}
@IBAction func btnCancel(sender: AnyObject) {
self.dismissViewController(self)
}
override func viewDidLoad() {
super.viewDidLoad()
addComboxValue(comboxRouterValue,myObj:projNewRouter)
self.projNewRouter.selectItemAtIndex(0)
let notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.addObserver(
self,
selector: “testNotication:”,
name:"NotificationIdentifier",
object: nil)
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: projNewRouter.indexOfSelectedItem)
}
func testNotication(notification: NSNotification){
print("Found Combo ID \(notification.object)")
}
func addComboxValue(myVal:[String],myObj:AnyObject){
let myValno: Int = myVal.count
for var i = 0; i < myValno; ++i{
myObj.addItemWithObjectValue(myVal[i])
}
}
}