Thật không may, điều khiển trong sân chơi không tương tác.
Tôi đã cố gắng tránh việc điều khiển sân chơi không tương tác vào ngày khác bằng cách tạo và hiển thị NSWindow
cho sân chơi Mac, tuy nhiên, kết quả là cửa sổ chỉ nháy phía sau sân chơi.
tốt nhất mà tôi có thể nói sau khi một số thăm dò vào NSProcess
, NSBundle
, NSApplication
và xem Monitor Hoạt động hệ thống, sân chơi thực sự biên dịch mã của bạn, tải nó vào một ứng dụng còn sơ khai, thực thi, sân chơi nắm bắt được kết quả và hiển thị chúng sau đó ứng dụng gốc thoát ra hoặc chờ xung quanh để thực hiện tiếp theo. Điều này có nghĩa là khi bạn thấy kết quả, mã không còn thực thi nữa.
Nếu bạn tò mò, bạn có thể thử mã bên dưới trong một sân chơi để xem ý tôi là gì. Nếu bạn mở Activity Monitor và lọc trên PlaygroundStub_OSX
bạn có thể thấy quá trình chạy mã khởi chạy. Đó là lần trong trạng thái "Không phản hồi". Tôi cũng đã bao gồm một ảnh chụp màn hình của các kết quả của phần thăm dò của mã.
import Cocoa
var app = NSApplication.sharedApplication()
app.hidden
var procInfo = NSProcessInfo.processInfo()
procInfo.processName
procInfo.arguments
var bundle = NSBundle.mainBundle()
bundle.bundlePath
var window = NSWindow(contentRect: NSRect(x: 30, y: 30, width: 400, height: 400), styleMask: NSTitledWindowMask, backing: .Buffered, defer: false)
var view = NSView(frame: NSRect(x: 0, y: 0, width: 300, height: 300))
var textField = NSTextField(frame: NSRect(x: 30, y: 30, width: 100, height: 20))
textField.stringValue = "Test"
view.addSubview(textField)
var button = NSButton(frame: NSRect(x: 30, y: 60, width: 100, height: 30))
button.highlight(true)
var buttonCell:NSButtonCell = button.cell() as NSButtonCell
buttonCell.bezelStyle = NSBezelStyle.RoundedBezelStyle
view.addSubview(button)
window.contentView.addSubview(view)
window.makeKeyAndOrderFront(nil)
CẬP NHẬT
tôi đã có thể để có được một cửa sổ bán chức năng OS X trong một sân chơi Swift và đặt mã trong một github repo. Tôi không chắc chắn nếu một UIKit tương tác dựa trên xem là có thể được nêu ra.
Đó là mã đầy đủ của bạn phải không? Bạn không thể tham chiếu 'self' bên ngoài một số loại phương thức lớp học – BergQuester
@BergQuester vâng tôi biết vì lý do tại sao tôi yêu cầu thay thế: làm thế nào để tôi tham khảo sân chơi, nơi tôi sẽ định nghĩa buttonAction func? Tôi cũng cố gắng tự tạo một lớp nhưng khi tôi nhấn nút, nó không in bất cứ thứ gì (xem mã cập nhật) – user310291
Tôi không nghĩ điều này là có thể, bởi vì ngay bây giờ sân chơi nhanh không thể mô phỏng đầu vào. Trong trường hợp này, hãy chạm vào sự kiện – Waruna