Rumah > Soal Jawab > teks badan
Saya mempunyai NSStackView, dan kandungannya ditambahkan pada masa jalanan Saya berharap bar skrol akan muncul apabila kandungan melebihi ketinggian tertentu, jadi saya meletakkan NSScrollView di luar.
Bar skrol kini boleh muncul, tetapi terdapat masalah baharu Kandungan baharu NSStackView ditambah dari bawah ke atas.
Sila beritahu saya cara menambah kandungan baharu dari atas ke bawah.
Berikut ialah papan cerita utama saya
Berikut ialah kod viewController
import Cocoa
class ViewController: NSViewController {
var todoList:[Todo] = []
@IBOutlet weak var todosStackView: NSStackView!
@IBOutlet weak var todosScrollView: NSScrollView!
@IBAction func onEnter(sender: NSTextField) {
//创建Todo
let todo = Todo()
todo.content = sender.stringValue
self.todoList.append(todo)
//根据上面的Todo创建一个checkbox
let todoItemView = TodoItem()
todoItemView.setButtonType(.SwitchButton)
todoItemView.todo=todo
//将上面的checkbox加入NSStackView
todosStackView.addView(todoItemView, inGravity: .Top)
}
@IBOutlet var todos: NSArrayController!
override func viewDidLoad() {
super.viewDidLoad()
todosScrollView.hasVerticalScroller = true
todosScrollView.hasHorizontalScroller = true
// Do any additional setup after loading the view.
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
Berikut ialah kod kotak pilihan
import Cocoa
class TodoItem: NSButton {
var todo:Todo!{
didSet {
self.title = self.todo.content
self.state = self.todo.done ? NSOnState : NSOffState
}
}
func completeTodo(){
if(self.state == NSOnState){
self.todo.done = true
}else{
self.todo.done = false
}
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(frame frameRect: NSRect) {
super.init(frame: frameRect)
self.setButtonType(.SwitchButton)
self.target = self
self.action = #selector(self.completeTodo)
}
}
阿神2017-05-02 09:30:25
Saya bertanya soalan ini pada stackoverflow dan ia menyelesaikan masalah saya.
NSClipView ialah subkelas NSView Koordinat lalai NSView ialah sudut kiri bawah.
Jadi cuma tukar isFlipped kepada true, yang bermaksud menterbalikkan koordinat dari sudut kiri bawah ke sudut kiri atas.
import Cocoa
class FlippedClipView : NSClipView{
override var flipped:Bool {
get {
return true
}
}
}
Kemudian tukar kelas tersuai ClipView kepada FlippedClipView
dalam main.storyboardJawapan asal
阿神2017-05-02 09:30:25
Helo, saya seorang pemula menggunakan keselamatan musim bunga Saya mencari soalan anda sebelumnya di Internet tentang menyesuaikan UserPasswordAthenticationFilter Saya juga menghadapi masalah yang sama dan ingin menulis pengesahan saya sendiri?