我正在寻找一种简单的方法来立即从超视图中删除所有子视图,而不是逐个删除它们.
//I'm trying something like this, but is not working
let theSubviews : Array = container_view.subviews
for (view : NSView) in theSubviews {
view.removeFromSuperview(container_view)
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
UPDATE
我的应用有一个主要的container_view.我必须添加不同的其他视图作为子视图,container_view以提供一种导航.
因此,当单击按钮以"打开"特定页面时,我需要删除所有子视图并添加新视图.
更新2 - 工作解决方案(OS X)
我猜Apple修了它.
现在比以往任何时候都更容易,只需致电:
for view in containerView.subviews{
view.removeFromSuperview()
}
Run Code Online (Sandbox Code Playgroud) 我有两个快速文件:
main.swift 和 view.swift
在main.swift中,我有一个variable (Int)初始设置为0.
随着IBACtion我设置variable要10和一切正常.
但是,如果我尝试访问该variable从view.swift,用一个简单的调用,比如main().getValue(),我总是得到0,而不是10即使变量已经改变了它在main.swift值.
该方法getValue()在main.swift看起来是这样的:
func getValue() -> Int {
return variable
}
Run Code Online (Sandbox Code Playgroud)
编辑
这是代码(翻译自意大利语:D)
import Cocoa
class Main: NSObject {
var variable: Int = 0
func getValue() -> Int {
return variable
}
@IBAction func updateVar(sender: AnyObject!) {
variable = 10
}
}
Run Code Online (Sandbox Code Playgroud)
class View: NSView {
override func drawRect(dirtyRect: …Run Code Online (Sandbox Code Playgroud) 我有一个NSTableView,其单元格是基于视图的.
DataSource和Delegate已连接,但我无法显示单元格的textField字符串值.
这是Objective-C中的代码,工作原理:
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return 10;
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSTableCellView *cell = [tableView makeViewWithIdentifier:@"List" owner:self];
[cella.textField setStringValue:"Hey, this is a cell"];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
这是我在Swift中的代码,而不是工作:
func numberOfRowsInTableView(aTableView: NSTableView!) -> Int
{
return 10 //Casual number
}
func tableView(tableView: NSTableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> NSTableCellView! {
var cell = tableView.makeViewWithIdentifier("List", owner: self) as NSTableCellView!
// setup cell …Run Code Online (Sandbox Code Playgroud) 使用我的应用程序时,我遇到了一些绘画方面的问题:
我想知道为什么为什么要回到Obj-c -moveToPoint()并-lineToPoint()没有问题地绘制所有东西,而现在却迅速地看到所有东西都一样,只是我的视线出现了一个奇怪的边界。让我更好地解释一下:
想象一下,您的任务是从A(0,0)到B(10,10)画一条基本线。
我们都知道如何在obj-c中做到这一点,但是很快我就有了新的东西:
var path : NSBezierPath = NSBezierPath(rect: dirtyRect)
let color = NSColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
color.set()
path.moveToPoint(NSPoint(x: 0,y: 0))
path.lineToPoint(NSPoint(x: 10,y: 10))
path.lineWidth = 5.0 //Makes the line 5px width, but it even
//creates an annoying border along the view
//Try it out, i can't figure out how to get rid of it
path.stroke()
Run Code Online (Sandbox Code Playgroud) 如何获得点击的 <li>标签ordered list?例如我有这个:
<ol>
<li>Text 1</li>
<li>Text 2</li>
<li>Text 3</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
当我点击第一个<li>标签时,我希望使用PHP 获得它的相对值.谢谢