2015-03-26 1 views
1

Следующий код работает отлично в моей песочнице:NSButton состояние не меняется

@IBAction func filterClicked(sender: NSButton) { 
    println(sender.state) 
    if let clickEvent = NSApp.currentEvent! { 
    if Int(clickEvent.modifierFlags.rawValue) & Int(NSEventModifierFlags.ControlKeyMask.rawValue) != 0 { 
     if sender.state == NSOffState { 
     sender.state == NSOnState 
     } 
    } 
    } 
    println(sender.state) 
} 

Кнопка связное является кнопка On-Off. Поэтому, когда он включен, и я нажму на него, он останется включенным.

К сожалению, в моем приложении, где я действительно нуждаюсь в этом, он не работает. Я проверил, что в обеих песочницах и prod-приложениях привязки/настройки идентичны для обеих кнопок. Отладчик показывает, что

 sender.state == NSOnState 

просто не выполняется. state остается NSOffState. Грызть мою клавиатуру не помогло. Есть идеи?

ответ

3

Вы не назначаете какое-либо значение состоянию кнопки.

sender.state = NSOnState 
+0

OMG! Я отправил это сообщение об ошибке, чтобы компилятор должен был выпустить предупреждение в этом случае. Огромное спасибо! –

0

Я знаю, что это уже принятый ответ, но мой сценарий обмена в случае поездки на кого-то еще:

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

1

Изменение состояния радио Кнопка (Проверка состояния) для быстрой 4:

@IBOutlet weak var checkedButton: NSButton! 

checkedButton.state = NSControl.StateValue.off // State = off 

checkedButton.state = NSControl.StateValue.on // State = on 
+0

Они меняют синтаксис чаще, чем их нижнее белье: - / –

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