我想根据是否启用或启用iCloud Photo Library来修改我的应用程序的行为.如何确定该状态?
有没有办法订阅通知,如果用户更改该设置我的应用程序将知道并能够更新以反映新的状态?
我正在尝试确定a中给定字符串出现的索引String,然后NSRange使用这些索引生成一个以便为a添加属性NSMutableAttributedString.问题是rangeOfString退货,Range<Index>但addAttributes:range:预计会有NSRange.我尝试NSRange从开始和结束索引创建Range失败,因为String.CharacterView.Index不是Int,因此它不会编译.
如何使用Range<Index>值来创建NSRange?
var originalString = "Hello {world} and those who inhabit it."
let firstBraceIndex = originalString.rangeOfString("{") //Range<Index>
let firstClosingBraceIndex = originalString.rangeOfString("}")
let range = NSMakeRange(firstBraceIndex.startIndex, firstClosingBraceIndex.endIndex)
//compile time error: cannot convert value of type Index to expected argument type Int
let attributedString = NSMutableAttributedString(string: originalString)
attributedString.addAttributes([NSFontAttributeName: boldFont], range: range)
Run Code Online (Sandbox Code Playgroud) iOS 14 添加了在点击或长按 UIBarButtonItem 或 UIButton 时显示菜单的功能,如下所示:
let menu = UIMenu(children: [UIAction(title: "Action", image: nil) { action in
//do something
}])
button.menu = menu
barButtonItem = UIBarButtonItem(title: "Show Menu", image: nil, primaryAction: nil, menu: menu)
Run Code Online (Sandbox Code Playgroud)
这通常会替换操作表(UIAlertController带actionSheet样式)。有一个动态操作表是很常见的,其中基于用户点击按钮时的某些状态仅包含或可能禁用操作。但是使用此 API,菜单是在创建按钮时创建的。如何在菜单出现之前修改菜单或使其动态化以确保适当的操作可用并在出现时处于正确的状态?
如果你在一个中包含Unicode字符NSString,它们中的很多将采用该文本的颜色集 - 它们只是该字体的常规字形,因此它们像任何其他字符一样显示.但是有一些着色的Unicode字符,例如GLOBE WITH MERIDIANS,它是带阴影的蓝色渐变.但我在其他地方看到了这个相同的字形,这是一个没有阴影的简单黑色轮廓,例如在iOS键盘中.我想使用那个字形,但没有装饰,也不必创建和使用图像.我想知道不同的字体是否会以不同的格式呈现它,而iOSFonts.com确实显示不同的样式(粗体,斜体),它们都是蓝色的.是否可以获得简单的普通版本?
当然有可能,因为这似乎正是Apple用Tip实现的.请注意,globe与文本颜色完全相同,并且它与所有其他字符一起包含在字符串中.当然那不是一个UIImage?

不同字体的字符:

编辑:链接问题中提供的解决方案不适用于此字符,因为变体字符看起来与原始字符完全相同 - 带阴影的蓝色.
我有几个UIView沿着包含的底部布置UIView.我希望这些视图始终具有相等的宽度,并始终拉伸以共同填充包含视图的宽度(如底部的表情符号键盘按钮).我接近这个的方法是为其中一个视图设置相等的宽度,然后只更新该视图的宽度约束,superviewWidth / numberOfViews这将导致所有其他视图更新为相同的值.
我想知道更改约束常量的代码需要去哪里.需要在键盘首次出现在屏幕上之前进行设置,并在旋转设备时进行更新.
我第一次尝试解决方案是将其放入updateViewConstraints并计算宽度containerView.frame.size.width.但是这个方法在加载时调用两次,第一次正确计算值,但第二次出于某种原因,containerView宽度为0.0.另一个问题是,旋转时,containerView宽度不是旋转后的值,而是旋转前的当前值.但是我不想等到旋转完成后更新约束,因为按钮将是原始大小然后更改将对用户产生不利影响.
我的问题是:放置此代码的最合适位置在哪里?有没有更好的方法来计算宽度?我可以保证它的宽度始终与屏幕宽度完全相同.我在Xcode 6中使用Size Classes,因此willRotateToInterfaceOrientation不推荐使用类似的方法.
我正在创建一个iOS 8自定义键盘扩展,我正在寻找一种方法来确定用户何时切换到另一个输入,以便更改我的布局.
例如,当用户选择UITextField带有类型的UIKeyboardTypeEmailAddressI时,我打算提供自定义键盘,当用户选择UITextField带有类型的另一个时UIKeyboardTypeDecimalPad,我想要注意它,并更新键盘的布局.当键盘类型更改以更新键盘布局时,如何通知?
Chrome最近更新了一个恼人的弹出窗口,该弹出窗口来自地址栏中的图标,并提示在用户提交表单时在页面上保存密码.此页面上没有其他输入框,没有其他浏览器提示保存此密码,因此我不知道Chrome的原因.它是一个密码,因此它不应该在输入框中以纯文本形式显示,但它不是应该保存的密码 - 它不是登录凭据.实际上非常重要的是计算机的用户不知道这个密码 - 其他人必须为他们输入密码 - 所以如果浏览器保存它就会很糟糕.
如何防止Chrome(和所有浏览器)提示您保存此密码?
<form action="/..." method="post" onsubmit="return pwFormIsSubmittable();">
<p>Password: <input autofocus="" type="password" name="1409_password" style="width:100px" tabindex="1" autocomplete="off"></p>
<div class="tabSubmitButtons">
<input type="button" name="event=default" value="Cancel" onclick="window.location='...'" tabindex="3">");
<input type="submit" value="Submit" onclick="submitForm();" tabindex="2">
<input type="hidden" name="begin" value="Yes">
<!-- couple other hidden inputs -->
</div>
</form>
Run Code Online (Sandbox Code Playgroud)

我有一个动态的按钮设置,可根据故事板中设置的自动布局约束自动调整宽度和高度.在纵向时,按钮具有相等的宽度和高度,因此框架是完全正方形的,当设备旋转到横向时,按钮变得更短更宽.我已经设置cornerRadius了按钮的图层,因此它们在纵向时是完美的圆形并且效果很好,但是当我旋转到横向时,角落半径看起来不再明显.我需要改变它,所以它变成了椭圆形.问题是,无论我在哪里尝试放置代码,我都无法获得旋转发生后按钮的正确宽度和高度.我希望在旋转设备时发生这种情况 - 不想等到旋转完成.理想情况下cornerRadius 在过渡动画时会为变化添加动画效果.
如果我使用viewWillLayoutSubviews或者viewDidLayoutSubviews,它在应用程序启动时正确获取按钮框架,但在旋转到横向时,在为新方向更新按钮的框架之前调用此方法,因此我无法计算正确的角半径.
如果我使用viewWillTransitionToSize:withTransitionCoordinator:或willTransitionToTraitCollection:withTransitionCoordinator:或者willRotateToInterfaceOrientation,当应用程序被启动,并在旋转架为新的大小更新之前,它被称为设备就不会被调用.
如果我使用willAnimateRotationToInterfaceOrientation,则在启动应用程序时不会调用它,但在旋转设备时它会正确获取新的按钮框.但是这种方法已被弃用.
所以问题是,您可以使用什么方法根据旋转完成时按钮的大小来设置按钮的属性,这是在旋转完成之前调用的?
请注意,需要为每个方向更改调用它,而不仅仅是大小类更改(旋转iPad不会更改大小类).我只需要支持iOS 8.0+.
这是我在方法中放置的代码,以确定它是否获得正确的大小:
println("\(button.frame.size.width) x \(button.frame.size.height)")
Run Code Online (Sandbox Code Playgroud) 我正在本地开发我的网站,并使用Chrome进行预览.虽然调整浏览器大小以测试使用的媒体查询非常容易max/min-width,但我无法max/min-device-width通过任何内置设置进行模拟.是否有Chrome扩展程序可以模拟移动设备并触发媒体查询,具体而言max/min-device-width也是如此orientation:portrait/landscape?
我基本上想用某种方法在我的计算机而不是智能手机上使用Chrome测试此媒体查询:
@media only screen and (max-device-width: 600px) and (orientation: portrait)
css google-chrome google-chrome-extension media-queries device-width
我已经实现了一个NSView包含许多NSTextFields和其他NSViews 的自定义.然后,我使用编辑器>嵌入>滚动视图在滚动视图中嵌入该自定义视图.这将在Outline中创建适当的层次结构,但我需要添加Auto Layout约束以指定此滚动视图应放置在视图中的位置(顶部,底部,前导,尾随).另外,我必须为剪辑视图添加自定义视图的约束,以便在正确的位置布置元素.这很有效,当我运行应用程序时,所有元素都会正确显示,并且视图会弹回滚动.但是,当我减小主视图的高度以使并非所有元素都适合屏幕时,会出现自动布局警告,当我更新帧时,它会再次增加视图的高度.为了解决这个问题,我不得不将滚动视图的底部约束移到主视图中.现在,当我运行应用程序时,窗口设置为正确的大小,但我无法滚动自定义视图以到达内容的底部 - 它受到限制,因此它除了弹性反弹效果之外根本不会滚动,因为你'重新处于边缘限制.所以我的问题是,当我在XIB中布局所有元素并使用自动布局时,我必须做什么才能允许滚动视图滚动?
ios ×6
ios8 ×3
swift ×3
autolayout ×2
objective-c ×2
cocoa ×1
css ×1
device-width ×1
html ×1
ios14 ×1
javascript ×1
macos ×1
nsrange ×1
nsscrollview ×1
nsstring ×1
photokit ×1
range ×1
rotation ×1
size-classes ×1
uikit ×1
uimenu ×1
uiview ×1
unicode ×1