To trochę skomplikowane, ale mam nadzieję, że ktoś mi pomoże. Próbuję utworzyć funkcję przeciągnij i upuść dla mojej aplikacji OSX.Swift and drop function OSX
Jak to wygląda w tej chwili. Jest więc tylko jedno pole tekstowe, które użytkownik może przeciągać i upuszczać wokół widoku. Jest to dość proste z tylko jednym polem tekstowym, ale jeśli jest kilka pól tekstowych, to staje się skomplikowane i nie wiem, jak się do nich zbliżyć. To co obecnie mam:
@IBOutlet weak var test: NSTextField!
@IBAction override func mouseDragged(theEvent: NSEvent) {
NSCursor.closedHandCursor().set()
var event_location = theEvent.locationInWindow
test.frame.origin.x = event_location.x - 192
test.frame.origin.y = event_location.y
}
testowy jest nazwa mojego NSTextField. Znam jego nazwę, więc łatwo ją przenieść. Ale jeśli użytkownik doda więcej pól tekstowych (zobacz na lewym panelu), to nie wiem jak adresować to pole tekstowe, ponieważ nie mam jego nazwy (jak "test" dla pierwszego wejścia).
dodaję pól tekstowych za pomocą tego kodu:
let input = NSTextField(frame: CGRectMake(width, height, 100, 22))
self.MainView.addSubview(input)
Jak mogę określić, które pole tekstowe (jeśli istnieje wiele na widoku) został wybrany, a następnie przenieść odpowiednią poprzez przeciągnij i upuść?
przeciągnij i upuść pracuje dla tego jednego statycznego pola tekstowego
Idealnie! Czy możesz po prostu edytować swoją odpowiedź i wyjaśnić kroki, które podjąłeś, aby ją zrozumieć? Jak klasa dla NSTextfield i jak działa SelectableTextField? – Anokrize
Tak, na pewno. Zaktualizuje wpis. –
Jeszcze raz dziękuję, wypróbowałem wszystko i zadziałało zgodnie z oczekiwaniami. Pozostało mi tylko jedno pytanie, czy ja też przeciągam przycisk lub inne obiekty? Sprawdź moją przykładową aplikację, w której próbowałem zrobić to za pomocą przycisku.Czy możesz mi powiedzieć, dlaczego to nie działa? https://github.com/tsafadi/DraggableButton – Anokrize