小编Mik*_*e97的帖子

以编程方式使用 NSTextField 的 NSPopover

创建了一个函数来显示一个带有文本字段的小弹出框。弹出窗口正确显示,但文本字段未正确显示。弹出视图控制器也是动态创建的,这就是我尝试过的:

func showLittlePopoverWithMessage(sender: AnyObject, message: String) {
    let controller = NSViewController()
    controller.view = NSView(frame: CGRect(x: CGFloat(100), y: CGFloat(50), width: CGFloat(100), height: CGFloat(50)))

    let popover = NSPopover()
    popover.contentViewController = controller
    popover.contentSize = controller.view.frame.size

    popover.behavior = .transient
    popover.animates = true

    // let txt = NSTextField(frame: NSMakeRect(100,50,50,22))
    let txt = NSTextField(frame: controller.view.frame)
    txt.stringValue = message
    txt.textColor = NSColor.white.withAlphaComponent(0.95)
    controller.view.addSubview(txt)
    txt.sizeToFit()
    popover.show(relativeTo: sender.bounds, of: sender as! NSView, preferredEdge: NSRectEdge.maxY)
}
Run Code Online (Sandbox Code Playgroud)

问题的图片

所以我的问题是为什么文本字段没有出现。

swift macos-sierra

7
推荐指数
1
解决办法
2954
查看次数

声明一个带有多个参数的 Objective-C 方法

我想将 NSTask(NSTask、launchpath 和 args)传递给一个函数,但我确实需要一些语义方面的帮助:

AppleDelegate.h 文件:

- (void)doTask:(NSTask*)theTask :(NSArray*)arguments :(NSString*)launchPath;
Run Code Online (Sandbox Code Playgroud)

AppleDelegate.m 文件:

- (void)doTask:(NSTask*)theTask :(NSArray*)arguments :(NSString*)launchPath
{
    self.currentTask = theTask;

    // do currentTask alloc, set the launcpath and the args, pipe and more
}
Run Code Online (Sandbox Code Playgroud)

这是调用“doTask”的代码:

NSTask* runMyTask;
NSString *command = @"/usr/bin/hdiutil";
NSArray* taskArgs = [NSArray arrayWithObjects:@"info", @"/", nil];

// Here the error:
[self doTask:runMyTask, taskArgs, command];  // ARC Semantic issue no visible interface for AppleDelegate declares the selector 'doTask'..
Run Code Online (Sandbox Code Playgroud)

选择器显示为未声明,但我以为我确实声明了它......是否可以做这样的事情,错误在哪里?

methods syntax objective-c

2
推荐指数
1
解决办法
3032
查看次数

SQL Server 2019:选择刚刚插入的行

我有一个 id 设置为 Primary_key/is_identity 的表,所以我想知道是否可以假设使用相反顺序查找SELECT TOP 1刚刚插入的BEGIN TRANSACTION行的正确性:COMMIT TRANSACTION

BEGIN TRANSACTION

INSERT INTO [MyTable] ([description], [name])
VALUES ('animal', 'cat')

SELECT TOP (1) [id], [description], [name]
FROM [MyTable]
ORDER BY [id] DESC

COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

考虑到上述限制和交易指令,这总是正确的吗?

sql-server

1
推荐指数
1
解决办法
84
查看次数

标签 统计

macos-sierra ×1

methods ×1

objective-c ×1

sql-server ×1

swift ×1

syntax ×1