小编Vai*_* KP的帖子

仅在键盘覆盖输入字段时才向上移动视图

我正在尝试为iPhone构建输入屏幕.屏幕有许多输入字段.其中大多数位于屏幕顶部,但两个字段位于底部.当用户尝试编辑屏幕底部的文本时,键盘将弹出并覆盖屏幕.我找到了一个简单的解决方案,可以在发生这种情况时将屏幕向上移动,但结果是屏幕总是向上移动,当用户尝试编辑屏幕时,屏幕顶部的字段会移动.

有没有办法让屏幕在编辑底部字段时移动?

我使用了这里找到的代码:

override func viewDidLoad() {
    super.viewDidLoad()        
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)
}

func keyboardWillShow(sender: NSNotification) {
    self.view.frame.origin.y -= 150
}

func keyboardWillHide(sender: NSNotification) {
    self.view.frame.origin.y += 150
}
Run Code Online (Sandbox Code Playgroud)

keyboard ios swift xcode6

140
推荐指数
5
解决办法
15万
查看次数

如何使用API​​"addPlan"在iOS设备中启用e-sim配置文件

在搜索到处后,我发现有一种方法可以使用以下API在iPhone中添加eSIM

func addPlan(with: CTCellularPlanProvisioningRequest, completionHandler: (CTCellularPlanProvisioningAddPlanResult) -> Void)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么但是完成处理程序没有返回CTCellularPlanProvisioningAddPlanResult的结果 只是打印以下错误.

Domain=NSCocoaErrorDomain Code=4099 "The connection to service named
com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo=
{NSDebugDescription=The connection to service named
com.apple.commcenter.coretelephony.xpc was invalidated.
Run Code Online (Sandbox Code Playgroud)

我想知道这个API是如何工作的,你可以在下面看到我的代码

let ctpr = CTCellularPlanProvisioningRequest()
ctpr.address = "SMDP+"
ctpr.confirmationCode = ""
ctpr.eid = ""
ctpr.iccid = ""

let ctcp =  CTCellularPlanProvisioning()
ctcp.addPlan(with: ctpr) { (result) in
    print(result)
}
Run Code Online (Sandbox Code Playgroud)

我正在使用CoreTelephony框架

任何帮助都会被批评

在检查其他应用程序后,我发现GigSky正在做同样的事情,有谁知道他们在做什么?

更新:

截至目前,我在下面找到了权利请求URL检查

https://developer.apple.com//contact/request/esim-access-entitlement

我要求,但苹果没有回应.

cellular-network entitlements ios core-telephony swift

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

NSPopover中的NSTableview与独立视图不同

我创建了一个类ListView,这是一个非常简单的Tableview。

如果我用IB实例化它,一切看起来都会很好。如果我以编程方式实例化它也是如此。

如果在a中以编程方式实例化它NSPopover,则表的每一行都会得到浅灰色背景。

在此处输入图片说明

这是从哪里来的?

这里的代码:

class ViewController: NSViewController {
    let popover = NSPopover()

    @IBOutlet weak var label: NSTextField!
    @IBAction func bu1(_ sender: Any) { 
        popover.show(relativeTo: label.visibleRect, of: label, preferredEdge: NSRectEdge.maxY)
    }

    override func viewDidLoad() { 
        super.viewDidLoad()

        let scrollListView = NSScrollView()
        let listView = ListView(frame: NSRect(x:100, y: 100, width: 100, height: 100))
        scrollListView.documentView = listView

        let viewController = NSViewController()
        viewController.view = scrollListView

        popover.appearance = NSAppearance(named: NSAppearance.Name.vibrantLight)
        popover.animates = false
        popover.contentViewController = viewController
    }
}

class ListView: NSTableView, NSTableViewDataSource, NSTableViewDelegate …
Run Code Online (Sandbox Code Playgroud)

macos cocoa nstableview nspopover swift

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

swift:为什么重载“==”运算符时需要符合equatable?

我正在快速学习并阅读了有关扩展中运算符重载的主题,其中包括:

extension StreetAddress: Equatable {
    static func == (lhs: StreetAddress, rhs: StreetAddress) -> Bool {
        return
            lhs.number == rhs.number &&
            lhs.street == rhs.street &&
            lhs.unit == rhs.unit
    }
}
Run Code Online (Sandbox Code Playgroud)

但我怎么知道我需要采用 Equatable 呢?

我尝试删除该协议,并且该功能的工作原理相同。不会报告任何警告或错误。为什么?

overloading operators swift equatable

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

直接在应用程序中显示下载文件的预览

我的应用程序有文件下载选项,可以使用 alamofire 下载方法下载文件。下载完成后,我需要显示文件的预览,而不将其保存到内部/云存储。我怎样才能实现这个类似whatsapp的功能,在下载文件后显示预览。

func downloadFile(fileUrl: URL) {
    let destination = DownloadRequest.suggestedDownloadDestination(for: .documentDirectory)

    Alamofire.download(fileUrl, to: destination)
        .response(completionHandler: { (downloadResponse) in
            self.dic.url = downloadResponse.destinationURL
            self.dic.uti = downloadResponse.destinationURL!.uti
            let rect = CGRect(x: 0, y: 0, width: 100, height: 100)
            self.dic.presentOpenInMenu(from: rect, in: self.view, animated: true)
        })
}
Run Code Online (Sandbox Code Playgroud)

quicklook ios document-preview swift

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

使用map/reduce函数将一个结构转换为另一个结构

如何使用swift的高阶函数将一个struct数组的值映射/减少到另一个?目前iam迭代数组并将每个值附加到新数组.是否有任何"swifty"方法将元素映射到其他元素?

/// Code sample
let priorityList = [Priority]()
let pushRowList = [PushRowList]()

for priority in priorityList {
  let id = priority.priorityID
  let state = priority.priorityState
  let item = PushRowList(optionId: id, optionTitle: state)
  pushRowList.append(item)
}
Run Code Online (Sandbox Code Playgroud)

我希望像map,reduce等"swifty"方法来执行操作.

struct swift

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