一个键盘辅助视图,可以与默认 iOS 键盘融合,提供一组可定制的按键。
有几种方法可以将 Quayboard 包含到您的 Xcode 项目中。
此方法在包含的示例项目中得到了演示(example/QuayboardExample.xcodeproj)。
将 Quayboard.xcodeproj
文件从 Finder 拖到您的项目导航器(⌘1)。这应该将 Quayboard 添加为您自己项目的子项目(通过它出现在矩形中的事实可以辨别,并且您应该能够浏览项目结构)。
在您的项目目标的“构建阶段”选项卡下,将 libQuayboard.a
添加到 “链接二进制与库”。
当您在“构建阶段”选项卡中时,将 libQuayboard.a
和 QuayboardResources.bundle
添加到 “目标依赖”。
展开 Quayboard 子项目,并将 QuayboardResources.bundle
拖入您的“复制Bundle资源”构建阶段。
在您的项目目标的“构建设置”选项卡下,搜索“头文件搜索路径”。将 Quayboard 项目的 /src/Quayboard/
文件夹的路径添加到此。它应该看起来像 "$(SRCROOT)/../src/Quayboard/"
,将 ..
替换为您项目到 Quayboard 项目的相对路径。
构建您的项目(⌘B)。如果一切顺利,您应该会收到“构建成功”的通知。这表示您已准备好在您的项目中实现 Quayboard。
在您想实现 Quayboard 的视图控制器的头文件顶部,包括 Quayboard。
#import "Quayboard.h"
该视图控制器还应实现 JSMQuayboardBarDelegate
,以便接收按键被按下的通知。
@interface MyViewController : UIViewController <JSMQuayboardBarDelegate>
在 viewDidLoad
方法中,创建一个 JSMQuayboardBar
的实例,将实例的代理设置为 self
,并将其设置为要实现的 UITextField 或 UITextView 的 inputAccessoryView
。出于本说明的目的,我们将使用 UITextView。
JSMQuayboardBar *quayboardBar = [[JSMQuayboardBar alloc] initWithFrame:CGRectMake( 0, 0, viewSize.width, height )];
quayboardBar.delegate = self;
self.textView.inputAccessoryView = quayboardBar;
然后您可以实现任意数量的按键。它们将在键盘的长度内均匀分布。
[quayboardBar addKeyWithValue:@"1"];
[quayboardBar addKeyWithValue:@"2"];
[quayboardBar addKeyWithValue:@"3"];
[quayboardBar addKeyWithValue:@"4"];
[quayboardBar addKeyWithValue:@"5"];
[quayboardBar addKeyWithTitle:@"⇥" andValue:@"\t"];
如果您正在使用符号作为标题(例如上面的制表符键),应考虑在键上设置一个辅助值,以便视障用户可以轻松使用您的 Quayboard。实现这一点非常简单,只需几分钟。这样的触摸需要很少的努力,但对一些潜在用户来说回报很大!
JSMQuayboardKey *tabKey = [quayboardBar addKeyWithTitle:@"⇥" andValue:@"\t"];
tabKey.accessibilityValue = @"Tab";
最后一步是实现代理方法,以便文本视图按预期更新。下面是一个示例(如示例项目中所示),用于在按键时更新UITextView
- (void)quayboardBar:(JSMQuayboardBar *)quayboardBar keyWasPressed:(JSMQuayboardButton *)key {
// Find the range of the selected text
NSRange range = self.textView.selectedRange;
// Get the relevant strings
NSString *firstHalfString = [self.textView.text substringToIndex:range.location];
NSString *insertingString = key.value;
NSString *secondHalfString = [self.textView.text substringFromIndex:range.location+range.length];
// Update the textView's text
self.textView.scrollEnabled = NO;
self.textView.text = [NSString stringWithFormat: @"%@%@%@", firstHalfString, insertingString, secondHalfString];
self.textView.scrollEnabled = YES;
// More the selection to after our inserted text
range.location += insertingString.length;
range.length = 0;
self.textView.selectedRange = range;
}
现在构建并运行(⌘R)。在选择您实现它的文本视图时,应显示Quayboard栏。按下键将更新文本视图。成功感觉很好。用Crunchie巧克力棒或其他东西奖励自己。
版权所有 © 2013 Daniel Farrelly
在符合以下条件的情况下,允许重新分发和使用源代码和二进制代码,是否修改,包括但不限于
本软件按照“原样”由版权所有者和贡献者提供,并放弃任何明示或暗示的保证,包括但不限于对适销性和针对特定目的的适用性的暗示保证。在任何情况下,版权所有者或贡献者都不应对任何直接、间接、偶然、特殊、示范性或后果性的损害(包括但不限于替代货物或服务的采购;使用、数据或利润的丧失;或业务中断)负责,无论这些损害是由于何种原因引起的,在任何侵权理论下,即使在被告知此类损害可能性的情况下。