@@ -6,14 +6,33 @@ class TitleTextField: NSTextField {
6
6
public var restoreResponder : NSResponder ?
7
7
8
8
override func performKeyEquivalent( with event: NSEvent ) -> Bool {
9
+ let pasteboard = NSPasteboard . general
10
+
9
11
if event. modifierFlags. contains ( . command) ,
10
12
event. keyCode == kVK_ANSI_C,
11
- !event. modifierFlags. contains ( . shift) ,
12
- !event. modifierFlags. contains ( . control) ,
13
- !event. modifierFlags. contains ( . option) {
14
- let pasteboard = NSPasteboard . general
13
+ let selectedRange = currentEditor ( ) ? . selectedRange,
14
+ selectedRange. length > 0
15
+ {
16
+ // Processing copy commands
17
+ let selectedString = ( stringValue as NSString ) . substring ( with: selectedRange)
15
18
pasteboard. declareTypes ( [ NSPasteboard . PasteboardType. string] , owner: nil )
16
- pasteboard. setString ( stringValue, forType: NSPasteboard . PasteboardType. string)
19
+ pasteboard. setString ( selectedString, forType: NSPasteboard . PasteboardType. string)
20
+ }
21
+
22
+ // Checks if Command + V was pressed and the current NSTextField is the first responder.
23
+ if event. modifierFlags. contains ( . command) ,
24
+ event. keyCode == kVK_ANSI_V,
25
+ window? . firstResponder == currentEditor ( )
26
+ {
27
+ if let items = pasteboard. pasteboardItems {
28
+ for item in items {
29
+ if let string = item. string ( forType: . string) {
30
+ let noNewlineString = string. replacingOccurrences ( of: " \n " , with: " " )
31
+ pasteboard. clearContents ( )
32
+ pasteboard. setString ( noNewlineString, forType: . string)
33
+ }
34
+ }
35
+ }
17
36
}
18
37
19
38
return super. performKeyEquivalent ( with: event)
0 commit comments