NSViewController中身が変わるたびに通知を出すNSTexFieldがあります。テキスト交換に関するswift macOS通知
また、NSTextFieldに文字を書き込むためにIBActionsが定義されたボタンがいくつかあります。 しかし、ボタンの1つが押されるたびに、NSTextFieldが更新されます。通知は行われません。
手動でNSControlTextDidChangeイベントを発生させるにはどうすればよいですか?
override func controlTextDidChange(_ notification: Notification) {
if let textField = notification.object as? NSTextField {
filterTable(with: textField.stringValue)
}
}
@IBAction func pressedKeyButton(_ sender: NSButton) {
let character = sender.title
self.searchTextField.stringValue.append(character)
self.searchTextField.textDidChange(Notification(name: .NSControlTextDidChange,object: nil))
}
「self.searchTextField.textDidChange(Notification(name:.NSControlTextDidChange、object:nil))」とは何ですか?あなたのcontrolTextDidChangeは正しいとは思われません。 –
pressedKeyButtonアクションがトリガされると、NSTexFieldの内容は更新されますが、controlTextDidChange関数はトリガされません。 –