Я новичок в разработке приложений OS X. Мне удалось создать NSComboBox (выборочно, не редактируется), я могу получить его indexOfSelectedItem на кнопке кнопки действий, отлично работая.NSComboBox Значение getGet при изменении
Как определить значение при изменении? Когда пользователь меняет свой выбор, какую функцию я буду использовать для обнаружения нового выбранного индекса?
Я попытался использовать 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])
}
}
}
Вы должны реализовать NSComboBoxDelegate и использовать метод 'comboB oxSelectionDidChange() ', чтобы узнать, что список всплывающих окон изменился –
Кстати, вы должны привыкнуть к новому синтаксису Swift для циклов. Для var loops больше не будет доступно в Swift3 https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md –
Ох, да, я вам нужно будет подобрать стиль в стиле. –