如何更改字体大小UISearchBar?
编辑:
答案
for(int i =0; i<[searchbar.subviews count]; i++) {
if([[searchbar.subviews objectAtIndex:i] isKindOfClass:[UITextField class]])
[(UITextField*)[searchbar.subviews objectAtIndex:i] setFont:[UIFont fontWithName:@"Helvetica" size:12]];
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Pankaj
我收到错误:
&重复符号可在以下位置找到:
重复符号_OBJC_METACLASS _ $ _ GTMLogAllowedLevelFilter in:/Users/kabloom/Library/Developer/Xcode/DerivedData/KaBloom-atezfibugqdtnobedrrypbagrnmn/Build/Products/Debug-iphoneos/GoogleToolboxForMac/libGoogleToolboxForMac.a(GTMLogger.o)/ Users/kabloom/Documents/Kabloom/Proj/Current Project/KaBloom Prakash/GoogleOpenSource.framework/GoogleOpenSource(GTMLogger.o)
我正在使用最新的firebase sdk 4.8.2.我在google论坛上阅读了很多关于类似问题的内容,此处有关堆栈溢出的答案很少,但无法解决问题.
duplicate-symbol google-toolbox-for-mac ios google-signin firebase-cloud-messaging
使用此消息拒绝的应用程序版本之一您的应用程序在连接到IPv6网络的运行iOS 11.2.5的iPad或iPhone上崩溃.问题是应用程序没有单一的网络功能或功能,所以我无法理解发生了什么.
这是应用程序的第4版,旧版本已经存储.在最后一个版本中,我们刚刚删除了一个问题,导致应用程序在新的iOS版本中失败文本.
我想实现Stripe Payment网关。并且需要生成令牌并将其传递给后端。
private func getToken(){
let cardParams = STPCardParams()
cardParams.number = paymentCardTextField?.cardNumber
cardParams.expMonth = (paymentCardTextField?.expirationMonth)!
cardParams.expYear = (paymentCardTextField?.expirationYear)!
cardParams.cvc = paymentCardTextField?.cvc
STPAPIClient.shared().createToken(withCard: cardParams) { (token: STPToken?, error: Error?) in
guard let token = token, error == nil else {
// Present error to user...
return
}
self.dictPayData["stripe_token"] = token.tokenId
print(self.dictPayData)
}
}
Run Code Online (Sandbox Code Playgroud) 我在 Swift 4/iOS 11 中恢复 IAP 时遇到问题。我的AppDelegate实现SKPaymentTransactionObserver. AppDelegate我正在didFinishLaunchingWithOptions打电话SKPaymentQueue.default().add(self)。我paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])也在 AppDelegate 中实现了该功能。
我可以ViewController像这样进行购买:
let payment = SKPayment(product: products.first!)
SKPaymentQueue.default().add(payment)
Run Code Online (Sandbox Code Playgroud)
购买成功完成 - 我在观察者中得到了updatedTransactionwith 状态。.purchasedpaymentQueue
但是,当我从中调用以下内容ViewController以恢复购买时:
SKPaymentQueue.default().restoreCompletedTransactions()
Run Code Online (Sandbox Code Playgroud)
该paymentQueue updatedTransactions函数从未被调用。
看来我的沙箱用户等设置正确,因为初始购买正在运行。沙盒用户有能力恢复购买吗?restoreCompletedTransactions()除了打电话恢复购买之外,我还需要做任何额外的工作吗?
更新,这是我的paymentQueue updatedTransactions代码AppDelegate:
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions{
switch transaction.transactionState{
case .purchased:
debugPrint("purchased it!")
menuDelegate?.unlockMenu()
//unlock …Run Code Online (Sandbox Code Playgroud) 我有一个嵌入在NavigationController中的视图控制器(WKWebViewController).这个ViewController提供了一个WKWebView.导航到任何网页后; 并且在长按任何检测到的内容(例如电话号码或链接)时,会显示一个操作表,其中包含复制,共享等选项.问题是当此操作表被取消时,WKWebViewController将被解除,并且显示根ViewController!无论选择是什么,它都可以复制,取消,甚至可以点击屏幕上的任何位置.
我已经尝试重写" 现在(_ viewControllerToPresent:UIViewController,动画标志:Bool,完成:(( - ) - > Void)?= nil) "和" dismiss(动画标志:Bool,完成:(() - > Void)?) "试图理解发生了什么,但后来意识到动作表没有呈现,也没有被其父视图控制器(WKWebViewController)解雇,事实上我在根视图控制器上做了同样的事情,发现它也没有呈现在它上面.
我已经做了很多搜索,试图了解是什么导致了这种行为,我甚至用一个简单的WKWebView构建了一个新项目,并且总是遇到同样的问题.
这是代码:
import UIKit; import WebKit
class WKWebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
var destinationUrlString: String?
var myWebView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let webConfiguration = WKWebViewConfiguration()
webConfiguration.dataDetectorTypes = []
let origin = CGPoint(x: 0, y: 0)
let size = CGSize(width: view.frame.size.width, height: view.frame.size.height)
myWebView = WKWebView(frame: .init(origin: origin, size: size), configuration: webConfiguration)
myWebView.uiDelegate = self
myWebView.navigationDelegate = self
myWebView.allowsLinkPreview = false
view …Run Code Online (Sandbox Code Playgroud) 我检查了我的配置文件,一切都很好,因为我在firebase提供的演示中使用了配置文件,我正在接收来自该演示项目的推送通知.问题是在我使用的主要项目中:
我仍然无法在我的项目中收到推送通知.让我知道我在哪里错过了什么.
在CoreData中更新实体时,是否需要使用setValue(_:forKey:),或者您可以使用默认的setter设置值?
someEntity.setValue("Bob", forKey: "Name")
与
someEntity.name = "Bob"
第一种方法触发KVC,第二种方法不触发(正确?).
接受的答案确认上述内容不正确.默认情况下,@ NSManaged在Swift属性上启用KVC.
那么托管对象上下文是否无法识别更改?使用默认的setter有什么缺点吗?我在任何文档中都找不到明确的答案.我的测试显示它工作得很好,但有些东西我不知道将来会再次咬我吗?
我在任何文档中找到的最接近的答案来自使用Swift的Key-Value Coding下的Key-Value Coding Programming Guide
从NSObject或其子类之一继承的Swift对象默认情况下是符合其属性的键值编码.而在Objective-C中,属性的访问器和实例变量必须遵循某些模式,Swift中的标准属性声明会自动保证这一点.
是否可以为导航层次结构中的单个视图控制器设置导航栏颜色?让默认的导航栏颜色为红色,行中的最后一个视图控制器应该是蓝色的。我使用这两行来为所述视图控制器的导航栏着色:
navigationController?.navigationBar.barTintColor = .blue
navigationController?.navigationBar.tintColor = .white
Run Code Online (Sandbox Code Playgroud)
但是当返回时(例如按下后退按钮),导航栏保持蓝色。使用上面的代码将颜色设置回红色不会做任何事情。
我正在开发一款可以在中午向您发送通知的应用程序。这个通知应该每天都不同。
我得到了通知本身的工作:
let notificationOptions: UNAuthorizationOptions = [.alert, .sound];
UNUserNotificationCenter.current().requestAuthorization(options: notificationOptions) { (granted, error) in
if !granted {
print("Something went wrong")
} else {
let content = UNMutableNotificationContent()
content.body = getRandomDailyString()
content.sound = UNNotificationSound.default()
let date = DateComponents(hour: 12, minute: 15)
let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)
let request = UNNotificationRequest(identifier: "Daily String", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
if let error = error {
print(error.localizedDescription)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在发生的情况是调用getRandomDailyString()函数,它返回一个字符串,并设置一个重复通知,该通知确实出现在指定时间,但始终具有相同的内容。
我该如何制作每天提供独特内容的通知?