Ich versuche, eine editierbare Text-Region in einem NSWindow zu machen. Bis jetzt kann ich ein Fenster bilden und ein Textfeld hinzufügen - aber wenn ich es vorwähle und Buchstaben eintippe, werden die Buchstaben in der Schale und NICHT im Textbereich wiederholt.Wie kann ich ein bearbeitbares Textfeld in einer schnellen Shell-Anwendung machen
Hinweis: Dies ist kein Xcode-Projekt ist - ich versuche, dies in der Schale in einer einzigen Datei zu tun - mein Ziel ist es, nur
in Code zu tun, um den Fehler zu replizieren, setzen Sie den folgenden Code in eine Datei (experiment.swift) und
> swift experiment.swift
ist der Shell-Befehl geben hier den Code
import Cocoa
class MyAppDelegate: NSObject, NSApplicationDelegate {
let window = NSWindow()
let ed = NSTextField(frame: NSMakeRect(20, 10, 180, 160))
func applicationDidFinishLaunching(aNotification: NSNotification) {
window.setContentSize(NSSize(width:600, height:200))
window.styleMask = NSTitledWindowMask | NSClosableWindowMask |
NSMiniaturizableWindowMask |
NSResizableWindowMask
window.opaque = false
window.center();
window.title = "My window"
ed.font = NSFont(name:"Helvetica Bold", size:20)
ed.stringValue = "edit me"
ed.editable = true
ed.selectable = true
window.contentView!.addSubview(ed)
window.makeKeyAndOrderFront(window)
window.level = 1
}
func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}
}
let app = NSApplication.sharedApplication()
let obj = MyAppDelegate()
app.delegate = obj
app.run()
Dies hilft - jetzt kann ich im Fenster bearbeiten, aber wenn ich Wagenrücklauf drücken, wird die gesamte Zeile ausgewählt und eine neue Zeile wird nicht erstellt. –